Accidental misspellings in namespace declarations can lead to some very obscure error messages. This check looks for potential misspellings to help track these down.
Explanation: Should pass resolved color instead of resource id.
Methods that take a color in the form of an integer should be passed an RGB triple, not the actual color resource id. You must call getResources().getColor(resource) to resolve the actual color value first.
Note: This issue has an associated quickfix operation in Android Studio/IntelliJ & Eclipse/ADT
Priority: 7 / 10
Category: Correctness
Severity: Warning
Explanation: ScrollView size validation.
ScrollView children must set their layout_width or layout_height attributes to wrap_content rather than fill_parent or match_parent in the scrolling dimension
328 // continue ringtone without stop
329 // so add below special handler to stop it after 3s if
330 // needed
331 if (vendor != null && vendor.toLowerCase().contains("samsung")) { 332 Thread ctlThread = new Thread() {
333 public void run() {
Priority: 6 / 10
Category: Correctness
Severity: Warning
Explanation: Implied default locale in case conversion.
Calling String#toLowerCase() or #toUpperCase()without specifying an explicit locale is a common source of bugs. The reason for that is that those methods will use the current locale on the user's device, and even though the code appears to work correctly when you are developing the app, it will fail in some locales. For example, in the Turkish locale, the uppercase replacement for i is notI.
If you want the methods to just perform ASCII replacement, for example to convert an enum name, call String#toUpperCase(Locale.US) instead. If you really want to use the current locale, call String#toUpperCase(Locale.getDefault()) instead.
This check ensures that a layout resource which is defined in multiple resource folders, specifies the same set of widgets.
This finds cases where you have accidentally forgotten to add a widget to all variations of the layout, which could result in a runtime crash for some resource configurations when a findViewById() fails.
There are cases where this is intentional. For example, you may have a dedicated large tablet layout which adds some extra widgets that are not present in the phone version of the layout. As long as the code accessing the layout resource is careful to handle this properly, it is valid. In that case, you can suppress this lint check for the given extra or missing views, or the whole layout
../../AndroidManifest.xml:9: Not targeting the latest versions of Android; compatibility modes apply. Consider testing and updating this version. Consult the android.os.Build.VERSION_CODES javadoc for details.
Note: This issue has an associated quickfix operation in Android Studio/IntelliJ
Priority: 6 / 10
Category: Correctness
Severity: Warning
Explanation: Target SDK attribute is not targeting latest version.
When your application runs on a version of Android that is more recent than your targetSdkVersion specifies that it has been tested with, various compatibility modes kick in. This ensures that your application continues to work, but it may look out of place. For example, if the targetSdkVersion is less than 14, your app may get an option button in the UI.
To fix this issue, set the targetSdkVersion to the highest available value. Then test your app to make sure everything works correctly. You may want to consult the compatibility notes to see what changes apply to each version you are adding support for: http://developer.android.com/reference/android/os/Build.VERSION_CODES.html
44 * download and show original image
45 *
46 */
47 public class EaseShowBigImageActivity extends EaseBaseActivity { 48 private static final String TAG = "ShowBigImage";
49 private ProgressDialog pd;
24 * show the video
25 *
26 */
27 public class EaseShowVideoActivity extends EaseBaseActivity{ 28 private static final String TAG = "ShowVideoActivity";
29
Priority: 6 / 10
Category: Correctness
Severity: Warning
Explanation: Class is not registered in the manifest.
Activities, services and content providers should be registered in the AndroidManifest.xml file using <activity>, <service> and <provider> tags.
If your activity is simply a parent class intended to be subclassed by other "real" activities, make it an abstract class.
../../AndroidManifest.xml:9: This targetSdkVersion value (20) is not used; it is always overridden by the value specified in the Gradle build script (25)
Explanation: Value overridden by Gradle build script.
The value of (for example) minSdkVersion is only used if it is not specified in the build.gradle build scripts. When specified in the Gradle build scripts, the manifest value is ignored and can be misleading, so should be removed to avoid ambiguity.
261 <string name="add_public_group_chat">Add public group</string>
262 <string name="gorup_not_found">Can not find this group</string>
263 <string name= "no_more_messages">no more messages</string>
264 <string name="join_public_group">Join public group</string> 265 <string name="chatroom_allow_owner_leave">Allow chatroom owner leave</string>
266 <string name="group_id">Group ID</string>
Note: This issue has an associated quickfix operation in Eclipse/ADT
Priority: 8 / 10
Category: Correctness:Messages
Severity: Fatal
Explanation: Incomplete translation.
If an application has more than one locale, then all the strings declared in one language should also be translated in all other languages.
If the string should not be translated, you can add the attribute translatable="false" on the <string> element, or you can define all your non-translatable strings in a resource file called donottranslate.xml. Or, you can ignore the issue with a tools:ignore="MissingTranslation" attribute.
By default this detector allows regions of a language to just provide a subset of the strings and fall back to the standard language strings. You can require all regions to provide a full translation by setting the environment variable ANDROID_LINT_COMPLETE_REGIONS.
You can tell lint (and other tools) which language is the default language in your res/values/ folder by specifying tools:locale="languageCode" for the root <resources> element in your resource file. (The tools prefix refers to the namespace declaration http://schemas.android.com/tools.)
If a string appears in a specific language translation file, but there is no corresponding string in the default locale, then this string is probably unused. (It's technically possible that your application is only intended to run in a specific locale, but it's still a good idea to provide a fallback.).
Note that these strings can lead to crashes if the string is looked up on any locale not providing a translation, so it's important to clean them up.
167 } catch (Exception e) {
168 e.printStackTrace();
169 if (wakeLock.isHeld())
170 wakeLock.release(); 171 if (voiceRecorder != null)
172 voiceRecorder.discardRecording();
Priority: 9 / 10
Category: Performance
Severity: Warning
Explanation: Incorrect WakeLock usage.
Failing to release a wakelock properly can keep the Android device in a high power mode, which reduces battery life. There are several causes of this, such as releasing the wake lock in onDestroy() instead of in onPause(), failing to call release() in all possible code paths after an acquire(), and so on.
../../src/com/hyphenate/easeui/ui/EaseBaiduMapActivity.java:54: Do not place Android context classes in static fields (static reference to MapView which has field e pointing to ImageView); this is a memory leak (and also breaks Instant Run)
51 public class EaseBaiduMapActivity extends EaseBaseActivity {
52 53 private final static String TAG = "map";
54static MapView mMapView = null; 55 FrameLayout mMapViewContainer = null;
56 LocationClient mLocClient;
../../src/com/hyphenate/easeui/ui/EaseBaiduMapActivity.java:65: Do not place Android context classes in static fields (static reference to EaseBaiduMapActivity which has field mMapViewContainer pointing to FrameLayout); this is a memory leak (and also breaks Instant Run)
../../src/com/hyphenate/easeui/controller/EaseUI.java:26: Do not place Android context classes in static fields (static reference to EaseUI which has field appContext pointing to Context); this is a memory leak (and also breaks Instant Run)
23 public final class EaseUI {
24 private static final String TAG = EaseUI.class.getSimpleName();
25 26/** 27 * the global EaseUI instance
28 */
Since this Handler is declared as an inner class, it may prevent the outer class from being garbage collected. If the Handler is using a Looper or MessageQueue for a thread other than the main thread, then there is no issue. If the Handler is using the Looper or MessageQueue of the main thread, you need to fix your Handler declaration, as follows: Declare the Handler as a static class; In the outer class, instantiate a WeakReference to the outer class and pass this object to your Handler when you instantiate the Handler; Make all references to members of the outer class using the WeakReference object.
../../res/layout/ease_activity_baidumap.xml:5: Possible overdraw: Root element paints background #eee with a theme that also paints a background (inferred theme is @android:style/Theme.Holo)
../../res/layout/ease_activity_show_big_image.xml:5: Possible overdraw: Root element paints background #000 with a theme that also paints a background (inferred theme is @android:style/Theme.Holo)
../../res/layout/ease_activity_show_file.xml:8: Possible overdraw: Root element paints background @color/common_bg with a theme that also paints a background (inferred theme is @android:style/Theme.Holo)
../../res/layout/ease_fragment_chat.xml:7: Possible overdraw: Root element paints background #f2f0eb with a theme that also paints a background (inferred theme is @android:style/Theme.Holo)
../../res/layout/ease_fragment_contact_list.xml:6: Possible overdraw: Root element paints background @color/common_bg with a theme that also paints a background (inferred theme is @android:style/Theme.Holo)
../../res/layout/ease_fragment_conversation_list.xml:7: Possible overdraw: Root element paints background @color/common_bg with a theme that also paints a background (inferred theme is @android:style/Theme.Holo)
../../res/layout/ease_row_chat_history.xml:6: Possible overdraw: Root element paints background #fff with a theme that also paints a background (inferred theme is @android:style/Theme.Holo)
../../res/layout/ease_search_bar.xml:7: Possible overdraw: Root element paints background #ededed with a theme that also paints a background (inferred theme is @android:style/Theme.Holo)
../../res/layout/ease_search_bar_with_padding.xml:9: Possible overdraw: Root element paints background #ededed with a theme that also paints a background (inferred theme is @android:style/Theme.Holo)
../../res/layout/ease_showvideo_activity.xml:9: Possible overdraw: Root element paints background #ffffff with a theme that also paints a background (inferred theme is @android:style/Theme.Holo)
../../res/layout/ease_widget_emojicon_tab_bar.xml:7: Possible overdraw: Root element paints background #FFFFFF with a theme that also paints a background (inferred theme is @android:style/Theme.Holo)
../../res/layout/ease_widget_title_bar.xml:6: Possible overdraw: Root element paints background @color/top_bar_normal_bg with a theme that also paints a background (inferred theme is @android:style/Theme.Holo)
Explanation: Overdraw: Painting regions more than once.
If you set a background drawable on a root view, then you should use a custom theme where the theme background is null. Otherwise, the theme background will be painted first, only to have your custom background completely cover it; this is called "overdraw".
NOTE: This detector relies on figuring out which layouts are associated with which activities based on scanning the Java code, and it's currently doing that using an inexact pattern matching algorithm. Therefore, it can incorrectly conclude which activity the layout is associated with and then wrongly complain that a background-theme is hidden.
If you want your custom background on multiple pages, then you should consider making a custom theme with your custom background and just using that theme instead of a root element background.
Of course it's possible that your custom drawable is translucent and you want it to be mixed with the background. However, you will get better performance if you pre-mix the background with your drawable and use that resulting image or color as a custom theme background instead.
59 <string name="network_isnot_available">The network is not available</string>
60 <string name="recoding_fail">The recording failure, please try again！</string>
61 <string name="select_contacts">Select the contact</string>
62 <string name="confirm_forward_to">Confirm to forward to：%1$s ?</string> 63 <string name="logout">Logout</string>
64 <string name="logout_hint">Logout will never clear the chat history, this account can be used on next login</string>
60 <string name="recoding_fail">The recording failure, please try again！</string>
61 <string name="select_contacts">Select the contact</string>
62 <string name="confirm_forward_to">Confirm to forward to：%1$s ?</string>
63 <string name="logout">Logout</string> 64 <string name="logout_hint">Logout will never clear the chat history, this account can be used on next login</string>
65 <string name="exit_group_hint">The group messages will not be received after exiting the group</string>
61 <string name="select_contacts">Select the contact</string>
62 <string name="confirm_forward_to">Confirm to forward to：%1$s ?</string>
63 <string name="logout">Logout</string>
64 <string name="logout_hint">Logout will never clear the chat history, this account can be used on next login</string> 65 <string name="exit_group_hint">The group messages will not be received after exiting the group</string>
66 <string name="dissolution_group_hint">The group will be dismissed after exiting</string>
62 <string name="confirm_forward_to">Confirm to forward to：%1$s ?</string>
63 <string name="logout">Logout</string>
64 <string name="logout_hint">Logout will never clear the chat history, this account can be used on next login</string>
65 <string name="exit_group_hint">The group messages will not be received after exiting the group</string> 66 <string name="dissolution_group_hint">The group will be dismissed after exiting</string>
67 <string name="exit_group">Exit</string>
63 <string name="logout">Logout</string>
64 <string name="logout_hint">Logout will never clear the chat history, this account can be used on next login</string>
65 <string name="exit_group_hint">The group messages will not be received after exiting the group</string>
66 <string name="dissolution_group_hint">The group will be dismissed after exiting</string> 67 <string name="exit_group">Exit</string>
68 <string name="connect_conflict">The same account was loggedin in other device</string>
64 <string name="logout_hint">Logout will never clear the chat history, this account can be used on next login</string>
65 <string name="exit_group_hint">The group messages will not be received after exiting the group</string>
66 <string name="dissolution_group_hint">The group will be dismissed after exiting</string>
67 <string name="exit_group">Exit</string> 68 <string name="connect_conflict">The same account was loggedin in other device</string>
69 <string name="set">Settings</string>
65 <string name="exit_group_hint">The group messages will not be received after exiting the group</string>
66 <string name="dissolution_group_hint">The group will be dismissed after exiting</string>
67 <string name="exit_group">Exit</string>
68 <string name="connect_conflict">The same account was loggedin in other device</string> 69 <string name="set">Settings</string>
70 <string name="notify">New message notification</string>
66 <string name="dissolution_group_hint">The group will be dismissed after exiting</string>
67 <string name="exit_group">Exit</string>
68 <string name="connect_conflict">The same account was loggedin in other device</string>
69 <string name="set">Settings</string> 70 <string name="notify">New message notification</string>
71 <string name="newnotify">Receiving a new message</string>
67 <string name="exit_group">Exit</string>
68 <string name="connect_conflict">The same account was loggedin in other device</string>
69 <string name="set">Settings</string>
70 <string name="notify">New message notification</string> 71 <string name="newnotify">Receiving a new message</string>
72 <string name="shake">Shake</string>
122 <string name="Exit_the_group_chat">Exit the group</string>
123 <string name="Please_enter_a_username">Please enter a username</string>
124 125 <string name="not_add_myself">"Can't add myself"</string> 126 <string name="This_user_is_already_your_friend">This user is already your friend</string>
127 <string name="Add_a_friend">Let me to be your friend!</string>
123 <string name="Please_enter_a_username">Please enter a username</string>
124 125 <string name="not_add_myself">"Can't add myself"</string>
126 <string name="This_user_is_already_your_friend">This user is already your friend</string> 127 <string name="Add_a_friend">Let me to be your friend!</string>
128 <string name="send_successful">Request was sent, waiting for the peer to accept</string>
124 125 <string name="not_add_myself">"Can't add myself"</string>
126 <string name="This_user_is_already_your_friend">This user is already your friend</string>
127 <string name="Add_a_friend">Let me to be your friend!</string> 128 <string name="send_successful">Request was sent, waiting for the peer to accept</string>
129 <string name="Request_add_buddy_failure">Request add buddy failure:</string>
125 <string name="not_add_myself">"Can't add myself"</string>
126 <string name="This_user_is_already_your_friend">This user is already your friend</string>
127 <string name="Add_a_friend">Let me to be your friend!</string>
128 <string name="send_successful">Request was sent, waiting for the peer to accept</string> 129 <string name="Request_add_buddy_failure">Request add buddy failure:</string>
130 <string name="Network_error">Network error</string>
126 <string name="This_user_is_already_your_friend">This user is already your friend</string>
127 <string name="Add_a_friend">Let me to be your friend!</string>
128 <string name="send_successful">Request was sent, waiting for the peer to accept</string>
129 <string name="Request_add_buddy_failure">Request add buddy failure:</string> 130 <string name="Network_error">Network error</string>
131 <string name="Making_sure_your_location">Making sure your location..</string>
136 <string name="call_duration">call duration</string>
137 <string name="Refused">Refused</string>
138 <string name="The_other_party_has_refused_to">Call was refused</string>
139 <string name="The_other_is_not_online">The peer is not online</string> 140 <string name="The_other_is_on_the_phone">The peer is on the phone</string>
141 <string name="The_other_party_did_not_answer">The peer did not answer</string>
137 <string name="Refused">Refused</string>
138 <string name="The_other_party_has_refused_to">Call was refused</string>
139 <string name="The_other_is_not_online">The peer is not online</string>
140 <string name="The_other_is_on_the_phone">The peer is on the phone</string> 141 <string name="The_other_party_did_not_answer">The peer did not answer</string>
142 <string name="did_not_answer">did not answer</string>
138 <string name="The_other_party_has_refused_to">Call was refused</string>
139 <string name="The_other_is_not_online">The peer is not online</string>
140 <string name="The_other_is_on_the_phone">The peer is on the phone</string>
141 <string name="The_other_party_did_not_answer">The peer did not answer</string> 142 <string name="did_not_answer">did not answer</string>
143 <string name="Has_been_cancelled">Cancelled</string>
139 <string name="The_other_is_not_online">The peer is not online</string>
140 <string name="The_other_is_on_the_phone">The peer is on the phone</string>
141 <string name="The_other_party_did_not_answer">The peer did not answer</string>
142 <string name="did_not_answer">did not answer</string> 143 <string name="Has_been_cancelled">Cancelled</string>
144 <string name="unable_to_get_loaction">Unable to get to your location information!</string>
140 <string name="The_other_is_on_the_phone">The peer is on the phone</string>
141 <string name="The_other_party_did_not_answer">The peer did not answer</string>
142 <string name="did_not_answer">did not answer</string>
143 <string name="Has_been_cancelled">Cancelled</string> 144 <string name="unable_to_get_loaction">Unable to get to your location information!</string>
145 <string name="not_connect_to_server">Not connect to server, please try again later</string>
142 <string name="did_not_answer">did not answer</string>
143 <string name="Has_been_cancelled">Cancelled</string>
144 <string name="unable_to_get_loaction">Unable to get to your location information!</string>
145 <string name="not_connect_to_server">Not connect to server, please try again later</string> 146 <string name="sd_card_does_not_exist">"SD card does not exist, can't take pictures"</string>
147 <string name="cant_find_pictures">"Can't find pictures"</string>
157 <string name="you_are_group">You have been kicked off from the group</string>
158 <string name="the_current_group_destroyed">The current group has been dismissed</string>
159 <string name="the_current_chat_room_destroyed">The current chat room has been dismissed</string>
160 <string name="Cant_chat_with_yourself">cannot chat with yourself</string> 161 <string name="deleting">Deleting..</string>
162 <string name="Delete_failed">Failed to delete</string>
158 <string name="the_current_group_destroyed">The current group has been dismissed</string>
159 <string name="the_current_chat_room_destroyed">The current chat room has been dismissed</string>
160 <string name="Cant_chat_with_yourself">cannot chat with yourself</string>
161 <string name="deleting">Deleting..</string> 162 <string name="Delete_failed">Failed to delete</string>
163 <string name="Is_moved_into_blacklist">Moving to blacklist..</string>
159 <string name="the_current_chat_room_destroyed">The current chat room has been dismissed</string>
160 <string name="Cant_chat_with_yourself">cannot chat with yourself</string>
161 <string name="deleting">Deleting..</string>
162 <string name="Delete_failed">Failed to delete</string> 163 <string name="Is_moved_into_blacklist">Moving to blacklist..</string>
164 <string name="Log_uploaded_successfully">Log was uploaded successfully</string>
161 <string name="deleting">Deleting..</string>
162 <string name="Delete_failed">Failed to delete</string>
163 <string name="Is_moved_into_blacklist">Moving to blacklist..</string>
164 <string name="Log_uploaded_successfully">Log was uploaded successfully</string> 165 <string name="Log_Upload_failed">Failed to upload the log</string>
166 <string name="get_failed_please_check">Failed to retrieve, please check the network or try again later</string>
162 <string name="Delete_failed">Failed to delete</string>
163 <string name="Is_moved_into_blacklist">Moving to blacklist..</string>
164 <string name="Log_uploaded_successfully">Log was uploaded successfully</string>
165 <string name="Log_Upload_failed">Failed to upload the log</string> 166 <string name="get_failed_please_check">Failed to retrieve, please check the network or try again later</string>
167 <string name="people">people</string>
163 <string name="Is_moved_into_blacklist">Moving to blacklist..</string>
164 <string name="Log_uploaded_successfully">Log was uploaded successfully</string>
165 <string name="Log_Upload_failed">Failed to upload the log</string>
166 <string name="get_failed_please_check">Failed to retrieve, please check the network or try again later</string> 167 <string name="people">people</string>
168 <string name="being_added">added</string>
169 <string name="is_quit_the_group_chat">Exiting group</string>
170 <string name="chatting_is_dissolution">Dismissing group</string>
171 <string name="are_empty_group_of_news">Clearing messages</string>
172 <string name="is_modify_the_group_name">Modifying the group name..</string> 173 <string name="Modify_the_group_name_successful">Modify the group name successful</string>
174 <string name="change_the_group_name_failed_please">Failed to change the group name, please check the network or try again later</string>
170 <string name="chatting_is_dissolution">Dismissing group</string>
171 <string name="are_empty_group_of_news">Clearing messages</string>
172 <string name="is_modify_the_group_name">Modifying the group name..</string>
173 <string name="Modify_the_group_name_successful">Modify the group name successful</string> 174 <string name="change_the_group_name_failed_please">Failed to change the group name, please check the network or try again later</string>
175 <string name="Are_moving_to_blacklist">Moving to blacklist</string>
171 <string name="are_empty_group_of_news">Clearing messages</string>
172 <string name="is_modify_the_group_name">Modifying the group name..</string>
173 <string name="Modify_the_group_name_successful">Modify the group name successful</string>
174 <string name="change_the_group_name_failed_please">Failed to change the group name, please check the network or try again later</string> 175 <string name="Are_moving_to_blacklist">Moving to blacklist</string>
176 <string name="failed_to_move_into">Failed to move to the blacklist, please check the network or try again later</string>
172 <string name="is_modify_the_group_name">Modifying the group name..</string>
173 <string name="Modify_the_group_name_successful">Modify the group name successful</string>
174 <string name="change_the_group_name_failed_please">Failed to change the group name, please check the network or try again later</string>
175 <string name="Are_moving_to_blacklist">Moving to blacklist</string> 176 <string name="failed_to_move_into">Failed to move to the blacklist, please check the network or try again later</string>
177 <string name="Exit_the_group_chat_failure">Failed to exit the group:</string>
173 <string name="Modify_the_group_name_successful">Modify the group name successful</string>
174 <string name="change_the_group_name_failed_please">Failed to change the group name, please check the network or try again later</string>
175 <string name="Are_moving_to_blacklist">Moving to blacklist</string>
176 <string name="failed_to_move_into">Failed to move to the blacklist, please check the network or try again later</string> 177 <string name="Exit_the_group_chat_failure">Failed to exit the group:</string>
178 <string name="Dissolve_group_chat_tofail">Failed to dismiss the group:</string>
174 <string name="change_the_group_name_failed_please">Failed to change the group name, please check the network or try again later</string>
175 <string name="Are_moving_to_blacklist">Moving to blacklist</string>
176 <string name="failed_to_move_into">Failed to move to the blacklist, please check the network or try again later</string>
177 <string name="Exit_the_group_chat_failure">Failed to exit the group:</string> 178 <string name="Dissolve_group_chat_tofail">Failed to dismiss the group:</string>
179 <string name="Add_group_members_fail">Add group members fail:</string>
175 <string name="Are_moving_to_blacklist">Moving to blacklist</string>
176 <string name="failed_to_move_into">Failed to move to the blacklist, please check the network or try again later</string>
177 <string name="Exit_the_group_chat_failure">Failed to exit the group:</string>
178 <string name="Dissolve_group_chat_tofail">Failed to dismiss the group:</string> 179 <string name="Add_group_members_fail">Add group members fail:</string>
180 <string name="Is_unblock">Unblocking group</string>
176 <string name="failed_to_move_into">Failed to move to the blacklist, please check the network or try again later</string>
177 <string name="Exit_the_group_chat_failure">Failed to exit the group:</string>
178 <string name="Dissolve_group_chat_tofail">Failed to dismiss the group:</string>
179 <string name="Add_group_members_fail">Add group members fail:</string> 180 <string name="Is_unblock">Unblocking group</string>
181 <string name="remove_group_of">Remove group of shielding failure, please check the network or try again later</string>
177 <string name="Exit_the_group_chat_failure">Failed to exit the group:</string>
178 <string name="Dissolve_group_chat_tofail">Failed to dismiss the group:</string>
179 <string name="Add_group_members_fail">Add group members fail:</string>
180 <string name="Is_unblock">Unblocking group</string> 181 <string name="remove_group_of">Remove group of shielding failure, please check the network or try again later</string>
182 <string name="group_is_blocked">Blocking the group..</string>
178 <string name="Dissolve_group_chat_tofail">Failed to dismiss the group:</string>
179 <string name="Add_group_members_fail">Add group members fail:</string>
180 <string name="Is_unblock">Unblocking group</string>
181 <string name="remove_group_of">Remove group of shielding failure, please check the network or try again later</string> 182 <string name="group_is_blocked">Blocking the group..</string>
183 <string name="group_of_shielding">Group of shielding failure, please check the network or try again later</string>
179 <string name="Add_group_members_fail">Add group members fail:</string>
180 <string name="Is_unblock">Unblocking group</string>
181 <string name="remove_group_of">Remove group of shielding failure, please check the network or try again later</string>
182 <string name="group_is_blocked">Blocking the group..</string> 183 <string name="group_of_shielding">Group of shielding failure, please check the network or try again later</string>
184 <string name="sure_to_empty_this">Clear all messages?</string>
180 <string name="Is_unblock">Unblocking group</string>
181 <string name="remove_group_of">Remove group of shielding failure, please check the network or try again later</string>
182 <string name="group_is_blocked">Blocking the group..</string>
183 <string name="group_of_shielding">Group of shielding failure, please check the network or try again later</string> 184 <string name="sure_to_empty_this">Clear all messages?</string>
185 <string name="The_delete_button_is_clicked">The delete button is clicked</string>
181 <string name="remove_group_of">Remove group of shielding failure, please check the network or try again later</string>
182 <string name="group_is_blocked">Blocking the group..</string>
183 <string name="group_of_shielding">Group of shielding failure, please check the network or try again later</string>
184 <string name="sure_to_empty_this">Clear all messages?</string> 185 <string name="The_delete_button_is_clicked">The delete button is clicked</string>
186 <string name="Add_a_button_was_clicked">Add a button was clicked</string>
182 <string name="group_is_blocked">Blocking the group..</string>
183 <string name="group_of_shielding">Group of shielding failure, please check the network or try again later</string>
184 <string name="sure_to_empty_this">Clear all messages?</string>
185 <string name="The_delete_button_is_clicked">The delete button is clicked</string> 186 <string name="Add_a_button_was_clicked">Add a button was clicked</string>
187 <string name="not_delete_myself">Cannot delete myself</string>
184 <string name="sure_to_empty_this">Clear all messages?</string>
185 <string name="The_delete_button_is_clicked">The delete button is clicked</string>
186 <string name="Add_a_button_was_clicked">Add a button was clicked</string>
187 <string name="not_delete_myself">Cannot delete myself</string> 188 <string name="Are_removed">Removing</string>
189 <string name="confirm_the_members">Move this member to group blacklist?</string>
185 <string name="The_delete_button_is_clicked">The delete button is clicked</string>
186 <string name="Add_a_button_was_clicked">Add a button was clicked</string>
187 <string name="not_delete_myself">Cannot delete myself</string>
188 <string name="Are_removed">Removing</string> 189 <string name="confirm_the_members">Move this member to group blacklist?</string>
190 <string name="Failed_to_get_group_chat_information">Failed to get group information:</string>
186 <string name="Add_a_button_was_clicked">Add a button was clicked</string>
187 <string name="not_delete_myself">Cannot delete myself</string>
188 <string name="Are_removed">Removing</string>
189 <string name="confirm_the_members">Move this member to group blacklist?</string> 190 <string name="Failed_to_get_group_chat_information">Failed to get group information:</string>
191 <string name="Is_sending_a_request">Sending the request..</string>
187 <string name="not_delete_myself">Cannot delete myself</string>
188 <string name="Are_removed">Removing</string>
189 <string name="confirm_the_members">Move this member to group blacklist?</string>
190 <string name="Failed_to_get_group_chat_information">Failed to get group information:</string> 191 <string name="Is_sending_a_request">Sending the request..</string>
192 <string name="Request_to_join">Apply to join</string>
188 <string name="Are_removed">Removing</string>
189 <string name="confirm_the_members">Move this member to group blacklist?</string>
190 <string name="Failed_to_get_group_chat_information">Failed to get group information:</string>
191 <string name="Is_sending_a_request">Sending the request..</string> 192 <string name="Request_to_join">Apply to join</string>
193 <string name="send_the_request_is">The request was sent and waiting for owner approval</string>
189 <string name="confirm_the_members">Move this member to group blacklist?</string>
190 <string name="Failed_to_get_group_chat_information">Failed to get group information:</string>
191 <string name="Is_sending_a_request">Sending the request..</string>
192 <string name="Request_to_join">Apply to join</string> 193 <string name="send_the_request_is">The request was sent and waiting for owner approval</string>
194 <string name="Join_the_group_chat">Join the group</string>
190 <string name="Failed_to_get_group_chat_information">Failed to get group information:</string>
191 <string name="Is_sending_a_request">Sending the request..</string>
192 <string name="Request_to_join">Apply to join</string>
193 <string name="send_the_request_is">The request was sent and waiting for owner approval</string> 194 <string name="Join_the_group_chat">Join the group</string>
195 <string name="Failed_to_join_the_group_chat">Failed to join the group</string>
191 <string name="Is_sending_a_request">Sending the request..</string>
192 <string name="Request_to_join">Apply to join</string>
193 <string name="send_the_request_is">The request was sent and waiting for owner approval</string>
194 <string name="Join_the_group_chat">Join the group</string> 195 <string name="Failed_to_join_the_group_chat">Failed to join the group</string>
196 <string name="temporary_does_not">Currently the video size greater than 10M is not supported!</string>
192 <string name="Request_to_join">Apply to join</string>
193 <string name="send_the_request_is">The request was sent and waiting for owner approval</string>
194 <string name="Join_the_group_chat">Join the group</string>
195 <string name="Failed_to_join_the_group_chat">Failed to join the group</string> 196 <string name="temporary_does_not">Currently the video size greater than 10M is not supported!</string>
197 <string name="Video_footage">Video record</string>
193 <string name="send_the_request_is">The request was sent and waiting for owner approval</string>
194 <string name="Join_the_group_chat">Join the group</string>
195 <string name="Failed_to_join_the_group_chat">Failed to join the group</string>
196 <string name="temporary_does_not">Currently the video size greater than 10M is not supported!</string> 197 <string name="Video_footage">Video record</string>
198 <string name="User_name_cannot_be_empty">User name cannot be empty!</string>
194 <string name="Join_the_group_chat">Join the group</string>
195 <string name="Failed_to_join_the_group_chat">Failed to join the group</string>
196 <string name="temporary_does_not">Currently the video size greater than 10M is not supported!</string>
197 <string name="Video_footage">Video record</string> 198 <string name="User_name_cannot_be_empty">User name cannot be empty!</string>
199 <string name="Password_cannot_be_empty">Password cannot be empty!</string>
195 <string name="Failed_to_join_the_group_chat">Failed to join the group</string>
196 <string name="temporary_does_not">Currently the video size greater than 10M is not supported!</string>
197 <string name="Video_footage">Video record</string>
198 <string name="User_name_cannot_be_empty">User name cannot be empty!</string> 199 <string name="Password_cannot_be_empty">Password cannot be empty!</string>
200 <string name="please_set_the_current">"Please set the current user's nickname \ n to ios offline push not userid but Nick, see comments"</string>
196 <string name="temporary_does_not">Currently the video size greater than 10M is not supported!</string>
197 <string name="Video_footage">Video record</string>
198 <string name="User_name_cannot_be_empty">User name cannot be empty!</string>
199 <string name="Password_cannot_be_empty">Password cannot be empty!</string> 200 <string name="please_set_the_current">"Please set the current user's nickname \ n to ios offline push not userid but Nick, see comments"</string>
201 <string name="Is_landing">logining..</string>
197 <string name="Video_footage">Video record</string>
198 <string name="User_name_cannot_be_empty">User name cannot be empty!</string>
199 <string name="Password_cannot_be_empty">Password cannot be empty!</string>
200 <string name="please_set_the_current">"Please set the current user's nickname \ n to ios offline push not userid but Nick, see comments"</string> 201 <string name="Is_landing">logining..</string>
202 <string name="list_is_for">Retrieving the groups and contacts</string>
198 <string name="User_name_cannot_be_empty">User name cannot be empty!</string>
199 <string name="Password_cannot_be_empty">Password cannot be empty!</string>
200 <string name="please_set_the_current">"Please set the current user's nickname \ n to ios offline push not userid but Nick, see comments"</string>
201 <string name="Is_landing">logining..</string> 202 <string name="list_is_for">Retrieving the groups and contacts</string>
203 <string name="login_failure_failed">Logon failure: failed to retrieve contacts or groups</string>
199 <string name="Password_cannot_be_empty">Password cannot be empty!</string>
200 <string name="please_set_the_current">"Please set the current user's nickname \ n to ios offline push not userid but Nick, see comments"</string>
201 <string name="Is_landing">logining..</string>
202 <string name="list_is_for">Retrieving the groups and contacts</string> 203 <string name="login_failure_failed">Logon failure: failed to retrieve contacts or groups</string>
204 <string name="Login_failed">Login failed:</string>
200 <string name="please_set_the_current">"Please set the current user's nickname \ n to ios offline push not userid but Nick, see comments"</string>
201 <string name="Is_landing">logining..</string>
202 <string name="list_is_for">Retrieving the groups and contacts</string>
203 <string name="login_failure_failed">Logon failure: failed to retrieve contacts or groups</string> 204 <string name="Login_failed">Login failed:</string>
205 <string name="receive_the_passthrough">Receive cmd message : action：</string>
201 <string name="Is_landing">logining..</string>
202 <string name="list_is_for">Retrieving the groups and contacts</string>
203 <string name="login_failure_failed">Logon failure: failed to retrieve contacts or groups</string>
204 <string name="Login_failed">Login failed:</string> 205 <string name="receive_the_passthrough">Receive cmd message : action：</string>
206 <string name="have_you_removed">Have you removed from his buddy list</string>
202 <string name="list_is_for">Retrieving the groups and contacts</string>
203 <string name="login_failure_failed">Logon failure: failed to retrieve contacts or groups</string>
204 <string name="Login_failed">Login failed:</string>
205 <string name="receive_the_passthrough">Receive cmd message : action：</string> 206 <string name="have_you_removed">Have you removed from his buddy list</string>
207 <string name="can_not_connect_chat_server_connection">Cannot connect to server</string>
203 <string name="login_failure_failed">Logon failure: failed to retrieve contacts or groups</string>
204 <string name="Login_failed">Login failed:</string>
205 <string name="receive_the_passthrough">Receive cmd message : action：</string>
206 <string name="have_you_removed">Have you removed from his buddy list</string> 207 <string name="can_not_connect_chat_server_connection">Cannot connect to server</string>
208 <string name="the_current_network">The current network is not available, please check the network Settings</string>
204 <string name="Login_failed">Login failed:</string>
205 <string name="receive_the_passthrough">Receive cmd message : action：</string>
206 <string name="have_you_removed">Have you removed from his buddy list</string>
207 <string name="can_not_connect_chat_server_connection">Cannot connect to server</string> 208 <string name="the_current_network">The current network is not available, please check the network Settings</string>
209 <string name="Invite_you_to_join_a_group_chat"> Invite you to join this group</string>
205 <string name="receive_the_passthrough">Receive cmd message : action：</string>
206 <string name="have_you_removed">Have you removed from his buddy list</string>
207 <string name="can_not_connect_chat_server_connection">Cannot connect to server</string>
208 <string name="the_current_network">The current network is not available, please check the network Settings</string> 209 <string name="Invite_you_to_join_a_group_chat"> Invite you to join this group</string>
210 <string name="Agreed_to_your_group_chat_application">Accepted your group application</string>
206 <string name="have_you_removed">Have you removed from his buddy list</string>
207 <string name="can_not_connect_chat_server_connection">Cannot connect to server</string>
208 <string name="the_current_network">The current network is not available, please check the network Settings</string>
209 <string name="Invite_you_to_join_a_group_chat"> Invite you to join this group</string> 210 <string name="Agreed_to_your_group_chat_application">Accepted your group application</string>
211 <string name="Logoff_notification">Logoff notification</string>
207 <string name="can_not_connect_chat_server_connection">Cannot connect to server</string>
208 <string name="the_current_network">The current network is not available, please check the network Settings</string>
209 <string name="Invite_you_to_join_a_group_chat"> Invite you to join this group</string>
210 <string name="Agreed_to_your_group_chat_application">Accepted your group application</string> 211 <string name="Logoff_notification">Logoff notification</string>
212 <string name="Remove_the_notification">Remove the notification</string>
208 <string name="the_current_network">The current network is not available, please check the network Settings</string>
209 <string name="Invite_you_to_join_a_group_chat"> Invite you to join this group</string>
210 <string name="Agreed_to_your_group_chat_application">Accepted your group application</string>
211 <string name="Logoff_notification">Logoff notification</string> 212 <string name="Remove_the_notification">Remove the notification</string>
213 <string name="Group_name_cannot_be_empty">Group name cannot be empty</string>
209 <string name="Invite_you_to_join_a_group_chat"> Invite you to join this group</string>
210 <string name="Agreed_to_your_group_chat_application">Accepted your group application</string>
211 <string name="Logoff_notification">Logoff notification</string>
212 <string name="Remove_the_notification">Remove the notification</string> 213 <string name="Group_name_cannot_be_empty">Group name cannot be empty</string>
214 <string name="Is_to_create_a_group_chat">Creating the group</string>
210 <string name="Agreed_to_your_group_chat_application">Accepted your group application</string>
211 <string name="Logoff_notification">Logoff notification</string>
212 <string name="Remove_the_notification">Remove the notification</string>
213 <string name="Group_name_cannot_be_empty">Group name cannot be empty</string> 214 <string name="Is_to_create_a_group_chat">Creating the group</string>
215 <string name="Failed_to_create_groups">Failed to create groups</string>
211 <string name="Logoff_notification">Logoff notification</string>
212 <string name="Remove_the_notification">Remove the notification</string>
213 <string name="Group_name_cannot_be_empty">Group name cannot be empty</string>
214 <string name="Is_to_create_a_group_chat">Creating the group</string> 215 <string name="Failed_to_create_groups">Failed to create groups</string>
216 <string name="The_video_to_start">The video to start</string>
212 <string name="Remove_the_notification">Remove the notification</string>
213 <string name="Group_name_cannot_be_empty">Group name cannot be empty</string>
214 <string name="Is_to_create_a_group_chat">Creating the group</string>
215 <string name="Failed_to_create_groups">Failed to create groups</string> 216 <string name="The_video_to_start">The video to start</string>
217 <string name="Whether_to_send">Are you sure to send?</string>
213 <string name="Group_name_cannot_be_empty">Group name cannot be empty</string>
214 <string name="Is_to_create_a_group_chat">Creating the group</string>
215 <string name="Failed_to_create_groups">Failed to create groups</string>
216 <string name="The_video_to_start">The video to start</string> 217 <string name="Whether_to_send">Are you sure to send?</string>
218 <string name="Open_the_equipment_failure">Open the equipment failure!</string>
214 <string name="Is_to_create_a_group_chat">Creating the group</string>
215 <string name="Failed_to_create_groups">Failed to create groups</string>
216 <string name="The_video_to_start">The video to start</string>
217 <string name="Whether_to_send">Are you sure to send?</string> 218 <string name="Open_the_equipment_failure">Open the equipment failure!</string>
219 <string name="Confirm_password_cannot_be_empty">Confirm password cannot be empty!</string>
215 <string name="Failed_to_create_groups">Failed to create groups</string>
216 <string name="The_video_to_start">The video to start</string>
217 <string name="Whether_to_send">Are you sure to send?</string>
218 <string name="Open_the_equipment_failure">Open the equipment failure!</string> 219 <string name="Confirm_password_cannot_be_empty">Confirm password cannot be empty!</string>
220 <string name="Two_input_password">Inconsistent password, please enter again!</string>
226 <string name="Download_the_pictures">Download the pictures: 0%</string>
227 <string name="Download_the_pictures_new">Download the pictures:</string>
228 <string name="Failed_to_download_file">Failed to download file:</string>
229 <string name="Version_number_is_wrong">Version number is wrong</string> 230 <string name="Are_connected_to_each_other">Connecting to peer..</string>
231 <string name="Is_not_yet_connected_to_the_server">Not connect to server</string>
227 <string name="Download_the_pictures_new">Download the pictures:</string>
228 <string name="Failed_to_download_file">Failed to download file:</string>
229 <string name="Version_number_is_wrong">Version number is wrong</string>
230 <string name="Are_connected_to_each_other">Connecting to peer..</string> 231 <string name="Is_not_yet_connected_to_the_server">Not connect to server</string>
232 <string name="In_the_call">In the call..</string>
228 <string name="Failed_to_download_file">Failed to download file:</string>
229 <string name="Version_number_is_wrong">Version number is wrong</string>
230 <string name="Are_connected_to_each_other">Connecting to peer..</string>
231 <string name="Is_not_yet_connected_to_the_server">Not connect to server</string> 232 <string name="In_the_call">In the call..</string>
233 <string name="The_other_party_refused_to_accept">The call was refused</string>
257 <string name="Delete_the_contact">Delete the contact</string>
258 <string name="Move_into_the_blacklist_new">Move into the blacklist</string>
259 <string name="Change_the_group_name">Change group name</string>
260 <string name="dismiss_group">Dismiss group</string> 261 <string name="add_public_group_chat">Add public group</string>
262 <string name="gorup_not_found">Can not find this group</string>
258 <string name="Move_into_the_blacklist_new">Move into the blacklist</string>
259 <string name="Change_the_group_name">Change group name</string>
260 <string name="dismiss_group">Dismiss group</string>
261 <string name="add_public_group_chat">Add public group</string> 262 <string name="gorup_not_found">Can not find this group</string>
263 <string name= "no_more_messages">no more messages</string>
265 <string name="chatroom_allow_owner_leave">Allow chatroom owner leave</string>
266 <string name="group_id">Group ID</string>
267 <string name="move_out_backlist">Remove from blacklist</string>
268 <string name="input_new_nick_hint">Input a new nick</string> 269 <string name="search_pubic_group">Search public group</string>
270 <string name="group_not_existed">The group does not exist</string>
266 <string name="group_id">Group ID</string>
267 <string name="move_out_backlist">Remove from blacklist</string>
268 <string name="input_new_nick_hint">Input a new nick</string>
269 <string name="search_pubic_group">Search public group</string> 270 <string name="group_not_existed">The group does not exist</string>
271 <string name="group_search_failed">Search failed</string>
267 <string name="move_out_backlist">Remove from blacklist</string>
268 <string name="input_new_nick_hint">Input a new nick</string>
269 <string name="search_pubic_group">Search public group</string>
270 <string name="group_not_existed">The group does not exist</string> 271 <string name="group_search_failed">Search failed</string>
272 <string name="nickname_description">Once this nick is set, this nick will be used in push notification (by default this is HuanXin ID ) when the receiver is using the IOS device.</string>
268 <string name="input_new_nick_hint">Input a new nick</string>
269 <string name="search_pubic_group">Search public group</string>
270 <string name="group_not_existed">The group does not exist</string>
271 <string name="group_search_failed">Search failed</string> 272 <string name="nickname_description">Once this nick is set, this nick will be used in push notification (by default this is HuanXin ID ) when the receiver is using the IOS device.</string>
273 <string name="error_send_invalid_content">The message content is not allowed to be sent!</string>
269 <string name="search_pubic_group">Search public group</string>
270 <string name="group_not_existed">The group does not exist</string>
271 <string name="group_search_failed">Search failed</string>
272 <string name="nickname_description">Once this nick is set, this nick will be used in push notification (by default this is HuanXin ID ) when the receiver is using the IOS device.</string> 273 <string name="error_send_invalid_content">The message content is not allowed to be sent!</string>
274 <string name="error_send_not_in_the_group">You already were not in the group</string>
272 <string name="nickname_description">Once this nick is set, this nick will be used in push notification (by default this is HuanXin ID ) when the receiver is using the IOS device.</string>
273 <string name="error_send_invalid_content">The message content is not allowed to be sent!</string>
274 <string name="error_send_not_in_the_group">You already were not in the group</string>
275 <string name="refreshing_group_list">Refreshing group list</string> 276 <string name="failed_to_load_data">Failed to load data, please check network or try again later</string>
277 <string name="searching">searching</string>
273 <string name="error_send_invalid_content">The message content is not allowed to be sent!</string>
274 <string name="error_send_not_in_the_group">You already were not in the group</string>
275 <string name="refreshing_group_list">Refreshing group list</string>
276 <string name="failed_to_load_data">Failed to load data, please check network or try again later</string> 277 <string name="searching">searching</string>
278 <string name="hanging_up">Hanging up..</string>
274 <string name="error_send_not_in_the_group">You already were not in the group</string>
275 <string name="refreshing_group_list">Refreshing group list</string>
276 <string name="failed_to_load_data">Failed to load data, please check network or try again later</string>
277 <string name="searching">searching</string> 278 <string name="hanging_up">Hanging up..</string>
279 <string name="illegal_user_name">Illegal user name</string>
../../res/drawable/ease_common_tab_bg.xml: The following images appear both as density independent .xml files and as bitmap files: res/drawable-xhdpi/ease_common_tab_bg.png, res/drawable/ease_common_tab_bg.xml
Explanation: Icon is specified both as .xml file and as a bitmap.
If a drawable resource appears as an .xml file in the drawable/ folder, it's usually not intentional for it to also appear as a bitmap using the same name; generally you expect the drawable XML file to define states and each state has a corresponding drawable bitmap.
../../res/drawable-xhdpi/ease_default_avatar.png: The image ease_default_avatar.png varies significantly in its density-independent (dip) size across the various density versions: drawable-hdpi/ease_default_avatar.png: 59x59 dp (89x89 px), drawable-xhdpi/ease_default_avatar.png: 45x45 dp (89x89 px)
../../res/drawable-xhdpi/ease_groups_icon.png: The image ease_groups_icon.png varies significantly in its density-independent (dip) size across the various density versions: drawable-hdpi/ease_groups_icon.png: 59x59 dp (89x89 px), drawable-xhdpi/ease_groups_icon.png: 45x45 dp (89x89 px)
../../res/drawable-xhdpi/ease_new_friends_icon.png: The image ease_new_friends_icon.png varies significantly in its density-independent (dip) size across the various density versions: drawable-hdpi/ease_new_friends_icon.png: 59x59 dp (89x89 px), drawable-xhdpi/ease_new_friends_icon.png: 45x45 dp (89x89 px)
Checks the all icons which are provided in multiple densities, all compute to roughly the same density-independent pixel (dip) size. This catches errors where images are either placed in the wrong folder, or icons are changed to new sizes but some folders are forgotten.
../../res/drawable-hdpi: Missing the following drawables in drawable-hdpi: back_control.png, contact.png, ease_blue_add.png, ease_chat_edit_normal.9.png, ease_chat_image_normal.png... (26 more) ../../res/drawable-mdpi: Missing the following drawables in drawable-mdpi: back_control.png, contact.png, ease_app_panel_video_icon.9.png, ease_appitem_del_btn_normal.png, ease_appitem_del_btn_pressed.png... (140 more) ../../res/drawable-xhdpi: Missing the following drawables in drawable-xhdpi: ease_app_panel_video_icon.9.png, ease_appitem_del_btn_normal.png, ease_appitem_del_btn_pressed.png, ease_chat_face_normal.png, ease_chat_face_pressed.png... (105 more)
Priority: 4 / 10
Category: Usability:Icons
Severity: Warning
Explanation: Icon densities validation.
Icons will look best if a custom version is provided for each of the major screen density classes (low, medium, high, extra high). This lint check identifies icons which do not have complete coverage across the densities.
Low density is not really used much anymore, so this check ignores the ldpi density. To force lint to include it, set the environment variable ANDROID_LINT_INCLUDE_LDPI=true. For more information on current density usage, see http://developer.android.com/resources/dashboard/screens.html
Explanation: Duplicated icons under different names.
If an icon is repeated under different names, you can consolidate and just use one of the icons and delete the others to make your application smaller. However, duplicated icons usually are not intentional and can sometimes point to icons that were accidentally overwritten or accidentally not updated.
../../res: Missing density variation folders in res: drawable-xxhdpi, drawable-xxxhdpi
Priority: 3 / 10
Category: Usability:Icons
Severity: Warning
Explanation: Missing density folder.
Icons will look best if a custom version is provided for each of the major screen density classes (low, medium, high, extra-high, extra-extra-high). This lint check identifies folders which are missing, such as drawable-hdpi.
Low density is not really used much anymore, so this check ignores the ldpi density. To force lint to include it, set the environment variable ANDROID_LINT_INCLUDE_LDPI=true. For more information on current density usage, see http://developer.android.com/resources/dashboard/screens.html
"Action buttons are typically Cancel and/or OK, with OK indicating the preferred or most likely action. However, if the options consist of specific actions such as Close or Wait rather than a confirmation or cancellation of the action described in the content, then all the buttons should be active verbs. As a rule, the dismissive action of a dialog is always on the left whereas the affirmative actions are on the right."
This check looks for button bars and buttons which look like cancel buttons, and makes sure that these are on the left.
../../res/layout/ease_alert_dialog.xml:48: Buttons in button bars should be borderless; use style="?android:attr/buttonBarButtonStyle" (and ?android:attr/buttonBarStyle on the parent)
../../res/layout/ease_alert_dialog.xml:60: Buttons in button bars should be borderless; use style="?android:attr/buttonBarButtonStyle" (and ?android:attr/buttonBarStyle on the parent)
Button bars typically use a borderless style for the buttons. Set the style="?android:attr/buttonBarButtonStyle" attribute on each of the buttons, and set style="?android:attr/buttonBarStyle" on the parent layout
Note: This issue has an associated quickfix operation in Android Studio/IntelliJ & Eclipse/ADT
Priority: 5 / 10
Category: Usability
Severity: Warning
Explanation: Missing inputType or hint
Providing an inputType attribute on a text field improves usability because depending on the data to be input, optimized keyboards can be shown to the user (such as just digits and parentheses for a phone number). Similarly,a hint attribute displays a hint to the user for what is expected in the text field.
The lint detector also looks at the id of the view, and if the id offers a hint of the purpose of the field (for example, the id contains the phrase phone or email), then lint will also ensure that the inputType contains the corresponding type attributes.
If you really want to keep the text field generic, you can suppress this warning by setting inputType="text".
13 import android.widget.ImageView;
14 import android.widget.TextView;
15 16 public class EaseChatRowVoice extends EaseChatRowFile{ 17 18 private ImageView voiceImageView;
Priority: 3 / 10
Category: Usability
Severity: Warning
Explanation: Missing View constructors for XML inflation.
Some layout tools (such as the Android layout editor) need to find a constructor with one of the following signatures:
* View(Context context)
* View(Context context, AttributeSet attrs)
* View(Context context, AttributeSet attrs, int defStyle)
If your custom view needs to perform initialization which does not apply when used in a layout editor, you can surround the given code with a check to see if View#isInEditMode() is false, since that method will return false at runtime but true within a user interface editor.
432 }
433 434 @Override
435 public final boolean onTouch(View v, MotionEvent ev) { 436 boolean handled = false;
437
Priority: 6 / 10
Category: Accessibility
Severity: Warning
Explanation: Accessibility in Custom Views.
If a View that overrides onTouchEvent or uses an OnTouchListener does not also implement performClick and call it when clicks are detected, the View may not handle accessibility actions properly. Logic handling the click actions should ideally be placed in View#performClick as some accessibility services invoke performClick when a click action should occur.
More info:
To suppress this error, use the issue id "ClickableViewAccessibility" as explained in the Suppressing Warnings and Errors section.
Note: This issue has an associated quickfix operation in Android Studio/IntelliJ & Eclipse/ADT
Priority: 3 / 10
Category: Accessibility
Severity: Warning
Explanation: Image without contentDescription
Non-textual widgets like ImageViews and ImageButtons should use the contentDescription attribute to specify a textual description of the widget such that screen readers and other accessibility tools can adequately describe the user interface.
Note that elements in application screens that are purely decorative and do not provide any content or enable a user action should not have accessibility content descriptions. In this case, just suppress the lint warning with a tools:ignore="ContentDescription" attribute.
When calling TextView#setText
* Never call Number#toString() to format numbers; it will not handle fraction separators and locale-specific digits properly. Consider using String#format with proper format specifications (%d or %f) instead.
* Do not pass a string literal (e.g. "Hello") to display text. Hardcoded text can not be properly translated to other languages. Consider using Android resource strings instead.
* Do not build messages by concatenating text chunks. Such messages can not be properly translated.
Note: This issue has an associated quickfix operation in Eclipse/ADT
Priority: 5 / 10
Category: Internationalization
Severity: Warning
Explanation: Hardcoded text.
Hardcoding text attributes directly in layout files is bad for several reasons:
* When creating configuration variations (for example for landscape or portrait)you have to repeat the actual text (and keep it up to date when making changes)
* The application cannot be translated to other languages by just adding new translations for existing string resources.
There are quickfixes to automatically extract this hardcoded string into a resource lookup.
../../res/layout/ease_row_received_file.xml:95: @id/tv_file_state can overlap @id/tv_file_size if @id/tv_file_size, @string/not_download grow due to localized text expansion
../../res/layout/ease_row_sent_file.xml:77: @id/tv_file_state can overlap @id/tv_file_size if @id/tv_file_size, @id/tv_file_state grow due to localized text expansion
If relative layout has text or button items aligned to left and right sides they can overlap each other due to localized text expansion unless they have mutual constraints like toEndOf/toStartOf.
Priority: 6 / 10
Category: Internationalization:Bidirectional Text
Severity: Warning
Explanation: Padding and margin symmetry.
If you specify padding or margin on the left side of a layout, you should probably also specify padding on the right side (and vice versa) for right-to-left layout symmetry.
../../res/layout/ease_search_bar.xml:20: Consider adding android:drawableStart="@drawable/ease_search_bar_icon_normal" to better support right-to-left layouts
Priority: 5 / 10
Category: Internationalization:Bidirectional Text
Severity: Warning
Explanation: Using left/right instead of start/end attributes.
Using Gravity#LEFT and Gravity#RIGHT can lead to problems when a layout is rendered in locales where text flows from right to left. Use Gravity#START and Gravity#END instead. Similarly, in XML gravity and layout_gravity attributes, use start rather than left.
For XML attributes such as paddingLeft and layout_marginLeft, use paddingStart and layout_marginStart. NOTE: If your minSdkVersion is less than 17, you should add both the older left/right attributes as well as the new start/right attributes. On older platforms, where RTL is not supported and the start/right attributes are unknown and therefore ignored, you need the older left/right attributes. There is a separate lint check which catches that type of error.
(Note: For Gravity#LEFT and Gravity#START, you can use these constants even when targeting older platforms, because the start bitmask is a superset of the left bitmask. Therefore, you can use gravity="start" rather than gravity="left|start".)
The following issues were not run by lint, either because the check is not enabled by default, or because it was disabled with a command line flag or via one or more lint.xml configuration files in the project directories.
"Other platforms use an explicit back button with label to allow the user to navigate up the application's hierarchy. Instead, Android uses the main action bar's app icon for hierarchical navigation and the navigation bar's back button for temporal navigation."
This check is not very sophisticated (it just looks for buttons with the label "Back"), so it is disabled by default to not trigger on common scenarios like pairs of Back/Next buttons to paginate through screens.
An "easter egg" is code deliberately hidden in the code, both from potential users and even from other developers. This lint check looks for code which looks like it may be hidden from sight.
Accessing a field within the class that defines a getter for that field is at least 3 times faster than calling the getter. For simple getters that do nothing other than return the field, you might want to just reference the local field directly instead.
NOTE: As of Android 2.3 (Gingerbread), this optimization is performed automatically by Dalvik, so there is no need to change your code; this is only relevant if you are targeting older versions of Android.
There are predefined sizes (for each density) for launcher icons. You should follow these conventions to make sure your icons fit in with the overall look of the platform.
The BuildConfig class (available in Tools 17) provides a constant, "DEBUG", which indicates whether the code is being built in release mode or in debug mode. In release mode, you typically want to strip out all the logging calls. Since the compiler will automatically remove all code which is inside a "if (false)" check, surrounding your logging calls with a check for BuildConfig.DEBUG is a good idea.
If you really intend for the logging to be present in release mode, you can suppress this warning with a @SuppressLint annotation for the intentional logging calls.
Note: This issue has an associated quickfix operation in Eclipse/ADT
Disabled By: Default
Priority: 2 / 10
Category: Correctness
Severity: Error
Explanation: Mangled file line endings.
On Windows, line endings are typically recorded as carriage return plus newline: \r\n.
This detector looks for invalid line endings with repeated carriage return characters (without newlines). Previous versions of the ADT plugin could accidentally introduce these into the file, and when editing the file, the editor could produce confusing visual artifacts.
If a class is referenced in the manifest or in a layout file, it must also exist in the project (or in one of the libraries included by the project. This check helps uncover typos in registration names, or attempts to rename or move classes without updating the manifest file properly.
Margin values should be positive. Negative values are generally a sign that you are making assumptions about views surrounding the current one, or may be tempted to turn off child clipping to allow a view to escape its parent. Turning off child clipping to do this not only leads to poor graphical performance, it also results in wrong touch event handling since touch events are based strictly on a chain of parent-rect hit tests. Finally, making assumptions about the size of strings can lead to localization problems.
Note: This issue has an associated quickfix operation in Android Studio/IntelliJ
Disabled By: Default
Priority: 4 / 10
Category: Correctness
Severity: Warning
Explanation: Newer Library Versions Available.
This detector checks with a central repository to see if there are newer versions available for the dependencies used by this project. This is similar to the GradleDependency check, which checks for newer versions available in the Android SDK tools and libraries, but this works with any MavenCentral dependency, and connects to the library every time, which makes it more flexible but also much slower.
More info:
To suppress this error, use the issue id "NewerVersionAvailable" as explained in the Suppressing Warnings and Errors section.
SelectableText
Note: This issue has an associated quickfix operation in Android Studio/IntelliJ
Disabled By: Default
Priority: 7 / 10
Category: Usability
Severity: Warning
Explanation: Dynamic text should probably be selectable.
If a <TextView> is used to display data, the user might want to copy that data and paste it elsewhere. To allow this, the <TextView> should specify android:textIsSelectable="true".
This lint check looks for TextViews which are likely to be displaying data: views whose text is set dynamically. This value will be ignored on platforms older than API 11, so it is okay to set it regardless of your minSdkVersion.
Note: This issue has an associated quickfix operation in Android Studio/IntelliJ
Disabled By: Default
Priority: 10 / 10
Category: Correctness
Severity: Warning
Explanation: Code contains STOPSHIP marker.
Using the comment // STOPSHIP can be used to flag code that is incomplete but checked in. This comment marker can be used to indicate that the code should not be shipped until the issue is addressed, and lint will look for these.
Note: This issue has an associated quickfix operation in Android Studio/IntelliJ & Eclipse/ADT
Disabled By: Default
Priority: 5 / 10
Category: Usability:Typography
Severity: Warning
Explanation: Straight quotes can be replaced with curvy quotes.
Straight single quotes and double quotes, when used as a pair, can be replaced by "curvy quotes" (or directional quotes). This can make the text more readable.
Note that you should never use grave accents and apostrophes to quote, `like this'.
(Also note that you should not use curvy quotes for code fragments.)
This resource id definition appears not to be needed since it is not referenced from anywhere. Having id definitions, even if unused, is not necessarily a bad idea since they make working on layouts and menus easier, so there is not a strong reason to delete these.
Lint errors can be suppressed in a variety of ways:
1. With a @SuppressLint annotation in the Java code
2. With a tools:ignore attribute in the XML file
3. With ignore flags specified in the build.gradle file, as explained below
4. With a lint.xml configuration file in the project
5. With a lint.xml configuration file passed to lint via the --config flag
6. With the --ignore flag passed to lint.
To suppress a lint warning with an annotation, add a @SuppressLint("id") annotation on the class, method or variable declaration closest to the warning instance you want to disable. The id can be one or more issue id's, such as "UnusedResources" or {"UnusedResources","UnusedIds"}, or it can be "all" to suppress all lint warnings in the given scope.
To suppress a lint warning in an XML file, add a tools:ignore="id" attribute on the element containing the error, or one of its surrounding elements. You also need to define the namespace for the tools prefix on the root element in your document, next to the xmlns:android declaration: xmlns:tools="http://schemas.android.com/tools"
To suppress a lint warning in a build.gradle file, add a section like this:
Here we specify a comma separated list of issue id's after the disable command. You can also use warning or error instead of disable to change the severity of issues.
To suppress lint warnings with a configuration XML file, create a file named lint.xml and place it at the root directory of the project in which it applies.
The format of the lint.xml file is something like the following:
<?xml version="1.0" encoding="UTF-8"?>
<lint>
<!-- Disable this given check in this project -->
<issue id="IconMissingDensityFolder" severity="ignore" />
<!-- Ignore the ObsoleteLayoutParam issue in the given files -->
<issue id="ObsoleteLayoutParam">
<ignore path="res/layout/activation.xml" />
<ignore path="res/layout-xlarge/activation.xml" />
</issue>
<!-- Ignore the UselessLeaf issue in the given file -->
<issue id="UselessLeaf">
<ignore path="res/layout/main.xml" />
</issue>
<!-- Change the severity of hardcoded strings to "error" -->
<issue id="HardcodedText" severity="error" />
</lint>
To suppress lint checks from the command line, pass the --ignore flag with a comma separated list of ids to be suppressed, such as: $ lint --ignore UnusedResources,UselessLeaf /my/project/path


http://www.w3schools.com/html/mov_bbb.mp4 https://i.imgur.com/yBVxILF.jpg www.ng-conf.org https://www.iitr.ac.in ROTFL!!!! Now this explains :P why Kejriwal & his fans are upset with Yogendra Yadav. Because he had praised Narendra :smile: Modi and Gujarat model in an interview.Check this 1-min clip in which Yogendra Yadav openly praises Modis Gujarat development https://vimeo.com/119199079"
fdf gkjfd jedfkdsf https://www.youtube.com/watch?v=bQRLVxZHKPs :p :D
kjkTorquis, http://www.iitr.ac.in/Main/assets/images/topold.jpg index, https://www.cca.edu/sites/default/files/pdf/08/word-to-pdf.pdf http://www.w3schools.com/html/horse.mp3 et luna.Pol,
```
#include
int main(int argc, char *argv[]) {
/* An annoying "Hello World" example */
for (auto i = 0; i < 0xFFFF; i++)
cout << "Hello, World!" << endl;
char c = '\n';
unordered_map > m;
m["key"] = "\\\\"; // this is an error
return -2e3 + 12l;
}
``` consilium!Sunt capioes captis alter, primus monses.Stellas peregrinatione in asopus!Vae.


{% extends 'layout.html' %} {% block body_class %} home {% endblock %} {% block content %} {% include 'partials/main-nav.html' %} Fladoc A modern markdown versionable documentation skeleton based on Flask View Docs Responsive Designed for mobile-first Simple Just need a markdown editor Flexible Make your doc versionable {% endblock %}
A modern markdown versionable documentation skeleton based on Flask
View Docs
Designed for mobile-first
Just need a markdown editor
Make your doc versionable


{% extends "layout.html" %} {% block body %}
Email: {{ p[1] }}
Reward points: {{ p[2] }}
Find out more about Rewards Points here


S2P(1) Perl Programmers Reference Guide S2P(1) NAME psed - a stream editor SYNOPSIS psed [-an] script [file ...] psed [-an] [-e script] [-f script-file] [file ...] s2p [-an] [-e script] [-f script-file] DESCRIPTION A stream editor reads the input stream consisting of the specified files (or standard input, if none are given), processes is line by line by applying a script consisting of edit commands, and writes resulting lines to standard output. The filename `"-"' may be used to read standard input. The edit script is composed from arguments of -e options and script- files, in the given order. A single script argument may be specified as the first parameter. If this program is invoked with the name s2p, it will act as a sed-to- Perl translator. See "sed Script Translation". sed returns an exit code of 0 on success or >0 if an error occurred. OPTIONS -a A file specified as argument to the w edit command is by default opened before input processing starts. Using -a, opening of such files is delayed until the first line is actually written to the file. -e script The editing commands defined by script are appended to the script. Multiple commands must be separated by newlines. -f script-file Editing commands from the specified script-file are read and appended to the script. -n By default, a line is written to standard output after the editing script has been applied to it. The -n option suppresses automatic printing. COMMANDS sed command syntax is defined as [address[,address]][!]function[argument] with whitespace being permitted before or after addresses, and between the function character and the argument. The addresses and the address inverter ("!") are used to restrict the application of a command to the selected line(s) of input. Each command must be on a line of its own, except where noted in the synopses below. The edit cycle performed on each input line consist of reading the line (without its trailing newline character) into the pattern space, applying the applicable commands of the edit script, writing the final contents of the pattern space and a newline to the standard output. A hold space is provided for saving the contents of the pattern space for later use. Addresses A sed address is either a line number or a pattern, which may be combined arbitrarily to construct ranges. Lines are numbered across all input files. Any address may be followed by an exclamation mark (`"!"'), selecting all lines not matching that address. number The line with the given number is selected. $ A dollar sign ("$") is the line number of the last line of the input stream. /regular expression/ A pattern address is a basic regular expression (see "Basic Regular Expressions"), between the delimiting character "/". Any other character except "\" or newline may be used to delimit a pattern address when the initial delimiter is prefixed with a backslash (`"\"'). If no address is given, the command selects every line. If one address is given, it selects the line (or lines) matching the address. Two addresses select a range that begins whenever the first address matches, and ends (including that line) when the second address matches. If the first (second) address is a matching pattern, the second address is not applied to the very same line to determine the end of the range. Likewise, if the second address is a matching pattern, the first address is not applied to the very same line to determine the begin of another range. If both addresses are line numbers, and the second line number is less than the first line number, then only the first line is selected. Functions The maximum permitted number of addresses is indicated with each function synopsis below. The argument text consists of one or more lines following the command. Embedded newlines in text must be preceded with a backslash. Other backslashes in text are deleted and the following character is taken literally. [1addr]a\ text Write text (which must start on the line following the command) to standard output immediately before reading the next line of input, either by executing the N function or by beginning a new cycle. [2addr]b [label] Branch to the : function with the specified label. If no label is given, branch to the end of the script. [2addr]c\ text The line, or range of lines, selected by the address is deleted. The text (which must start on the line following the command) is written to standard output. With an address range, this occurs at the end of the range. [2addr]d Deletes the pattern space and starts the next cycle. [2addr]D Deletes the pattern space through the first embedded newline or to the end. If the pattern space becomes empty, a new cycle is started, otherwise execution of the script is restarted. [2addr]g Replace the contents of the pattern space with the hold space. [2addr]G Append a newline and the contents of the hold space to the pattern space. [2addr]h Replace the contents of the hold space with the pattern space. [2addr]H Append a newline and the contents of the pattern space to the hold space. [1addr]i\ text Write the text (which must start on the line following the command) to standard output. [2addr]l Print the contents of the pattern space: non-printable characters are shown in C-style escaped form; long lines are split and have a trailing `"\"' at the point of the split; the true end of a line is marked with a `"$"'. Escapes are: `\a', `\t', `\n', `\f', `\r', `\e' for BEL, HT, LF, FF, CR, ESC, respectively, and `\' followed by a three-digit octal number for all other non-printable characters. [2addr]n If automatic printing is enabled, write the pattern space to the standard output. Replace the pattern space with the next line of input. If there is no more input, processing is terminated. [2addr]N Append a newline and the next line of input to the pattern space. If there is no more input, processing is terminated. [2addr]p Print the pattern space to the standard output. (Use the -n option to suppress automatic printing at the end of a cycle if you want to avoid double printing of lines.) [2addr]P Prints the pattern space through the first embedded newline or to the end. [1addr]q Branch to the end of the script and quit without starting a new cycle. [1addr]r file Copy the contents of the file to standard output immediately before the next attempt to read a line of input. Any error encountered while reading file is silently ignored. [2addr]s/regular expression/replacement/flags Substitute the replacement string for the first substring in the pattern space that matches the regular expression. Any character other than backslash or newline can be used instead of a slash to delimit the regular expression and the replacement. To use the delimiter as a literal character within the regular expression and the replacement, precede the character by a backslash (`"\"'). Literal newlines may be embedded in the replacement string by preceding a newline with a backslash. Within the replacement, an ampersand (`"&"') is replaced by the string matching the regular expression. The strings `"\1"' through `"\9"' are replaced by the corresponding subpattern (see "Basic Regular Expressions"). To get a literal `"&"' or `"\"' in the replacement text, precede it by a backslash. The following flags modify the behaviour of the s command: g The replacement is performed for all matching, non- overlapping substrings of the pattern space. 1..9 Replace only the n-th matching substring of the pattern space. p If the substitution was made, print the new value of the pattern space. w file If the substitution was made, write the new value of the pattern space to the specified file. [2addr]t [label] Branch to the : function with the specified label if any s substitutions have been made since the most recent reading of an input line or execution of a t function. If no label is given, branch to the end of the script. [2addr]w file The contents of the pattern space are written to the file. [2addr]x Swap the contents of the pattern space and the hold space. [2addr]y/string1/string2/ In the pattern space, replace all characters occurring in string1 by the character at the corresponding position in string2. It is possible to use any character (other than a backslash or newline) instead of a slash to delimit the strings. Within string1 and string2, a backslash followed by any character other than a newline is that literal character, and a backslash followed by an `n' is replaced by a newline character. [1addr]= Prints the current line number on the standard output. [0addr]: [label] The command specifies the position of the label. It has no other effect. [2addr]{ [command] [0addr]} These two commands begin and end a command list. The first command may be given on the same line as the opening { command. The commands within the list are jointly selected by the address(es) given on the { command (but may still have individual addresses). [0addr]# [comment] The entire line is ignored (treated as a comment). If, however, the first two characters in the script are `"#n"', automatic printing of output is suppressed, as if the -n option were given on the command line. BASIC REGULAR EXPRESSIONS A Basic Regular Expression (BRE), as defined in POSIX 1003.2, consists of atoms, for matching parts of a string, and bounds, specifying repetitions of a preceding atom. Atoms The possible atoms of a BRE are: ., matching any single character; ^ and $, matching the null string at the beginning or end of a string, respectively; a bracket expressions, enclosed in [ and ] (see below); and any single character with no other significance (matching that character). A \ before one of: ., ^, $, [, *, \, matching the character after the backslash. A sequence of atoms enclosed in \( and \) becomes an atom and establishes the target for a backreference, consisting of the substring that actually matches the enclosed atoms. Finally, \ followed by one of the digits 0 through 9 is a backreference. A ^ that is not first, or a $ that is not last does not have a special significance and need not be preceded by a backslash to become literal. The same is true for a ], that does not terminate a bracket expression. An unescaped backslash cannot be last in a BRE. Bounds The BRE bounds are: *, specifying 0 or more matches of the preceding atom; \{count\}, specifying that many repetitions; \{minimum,\}, giving a lower limit; and \{minimum,maximum\} finally defines a lower and upper bound. A bound appearing as the first item in a BRE is taken literally. Bracket Expressions A bracket expression is a list of characters, character ranges and character classes enclosed in [ and ] and matches any single character from the represented set of characters. A character range is written as two characters separated by - and represents all characters (according to the character collating sequence) that are not less than the first and not greater than the second. (Ranges are very collating-sequence-dependent, and portable programs should avoid relying on them.) A character class is one of the class names alnum digit punct alpha graph space blank lower upper cntrl print xdigit enclosed in [: and :] and represents the set of characters as defined in ctype(3). If the first character after [ is ^, the sense of matching is inverted. To include a literal `"^"', place it anywhere else but first. To include a literal '"]"' place it first or immediately after an initial ^. To include a literal `"-"' make it the first (or second after ^) or last character, or the second endpoint of a range. The special bracket expression constructs "[[:<:]]" and "[[:>:]]" match the null string at the beginning and end of a word respectively. (Note that neither is identical to Perl's `\b' atom.) Additional Atoms Since some sed implementations provide additional regular expression atoms (not defined in POSIX 1003.2), psed is capable of translating the following backslash escapes: \< This is the same as "[[:>:]]". \> This is the same as "[[:<:]]". \w This is an abbreviation for "[[:alnum:]_]". \W This is an abbreviation for "[^[:alnum:]_]". \y Match the empty string at a word boundary. \B Match the empty string between any two either word or non-word characters. To enable this feature, the environment variable PSEDEXTBRE must be set to a string containing the requested characters, e.g.: "PSEDEXTBRE='<>wW'". ENVIRONMENT The environment variable "PSEDEXTBRE" may be set to extend BREs. See "Additional Atoms". DIAGNOSTICS ambiguous translation for character `%s' in `y' command The indicated character appears twice, with different translations. `[' cannot be last in pattern A `[' in a BRE indicates the beginning of a bracket expression. `\' cannot be last in pattern A `\' in a BRE is used to make the subsequent character literal. `\' cannot be last in substitution A `\' in a substitution string is used to make the subsequent character literal. conflicting flags `%s' In an s command, either the `g' flag and an n-th occurrence flag, or multiple n-th occurrence flags are specified. Note that only the digits `1' through `9' are permitted. duplicate label %s (first defined at %s) excess address(es) The command has more than the permitted number of addresses. extra characters after command (%s) illegal option `%s' improper delimiter in s command The BRE and substitution may not be delimited with `\' or newline. invalid address after `,' invalid backreference (%s) The specified backreference number exceeds the number of backreferences in the BRE. invalid repeat clause `\{%s\}' The repeat clause does not contain a valid integer value, or pair of values. malformed regex, 1st address malformed regex, 2nd address malformed regular expression malformed substitution expression malformed `y' command argument The first or second string of a y command is syntactically incorrect. maximum less than minimum in `\{%s\}' no script command given There must be at least one -e or one -f option specifying a script or script file. `\' not valid as delimiter in `y' command option -e requires an argument option -f requires an argument `s' command requires argument start of unterminated `{' string lengths in `y' command differ The translation table strings in a y command must have equal lengths. undefined label `%s' unexpected `}' A } command without a preceding { command was encountered. unexpected end of script The end of the script was reached although a text line after a a, c or i command indicated another line. unknown command `%s' unterminated `[' A BRE contains an unterminated bracket expression. unterminated `\(' A BRE contains an unterminated backreference. `\{' without closing `\}' A BRE contains an unterminated bounds specification. `\)' without preceding `\(' `y' command requires argument EXAMPLE The basic material for the preceding section was generated by running the sed script #no autoprint s/^.*Warn( *"\([^"]*\)".*$/\1/ t process b :process s/$!/%s/g s/$[_[:alnum:]]\{1,\}/%s/g s/\\\\/\\/g s/^/=item / p on the program's own text, and piping the output into "sort -u". SED SCRIPT TRANSLATION If this program is invoked with the name s2p it will act as a sed-to-Perl translator. After option processing (all other arguments are ignored), a Perl program is printed on standard output, which will process the input stream (as read from all arguments) in the way defined by the sed script and the option setting used for the translation. SEE ALSO perl(1), re_format(7) BUGS The l command will show escape characters (ESC) as `"\e"', but a vertical tab (VT) in octal. Trailing spaces are truncated from labels in :, t and b commands. The meaning of an empty regular expression (`"//"'), as defined by sed, is "the last pattern used, at run time". This deviates from the Perl interpretation, which will re-use the "last last successfully executed regular expression". Since keeping track of pattern usage would create terribly cluttered code, and differences would only appear in obscure context (where other sed implementations appear to deviate, too), the Perl semantics was adopted. Note that common usage of this feature, such as in "/abc/s//xyz/", will work as expected. Collating elements (of bracket expressions in BREs) are not implemented. STANDARDS This sed implementation conforms to the IEEE Std1003.2-1992 ("POSIX.2") definition of sed, and is compatible with the OpenBSD implementation, except where otherwise noted (see "BUGS"). AUTHOR This Perl implementation of sed was written by Wolfgang Laun<EMAIL_ADDRESS>COPYRIGHT and LICENSE This program is free and open software. You may use, modify, distribute, and sell this program (and any modified variants) in any way you wish, provided you do not restrict others from doing the same. perl v5.14.2 2014-09-30 S2P(1)


{% extends "page.html" %} {# This template is rendered in response to an authenticated request, so the user is technically logged in. But when the user sees it, the cookie is cleared by the Javascript, so we should render this as if the user was logged out, without e.g. authentication tokens. #} {% set logged_in = False %} {% block stylesheet %} {{super()}} {% endblock %} {% block login_widget %} {% endblock %} {% block site %}


About me paragraph
A Paragraph about me ...
You can get more information about me at Hubble Solutions


{% extends "base.html" %} {% block content %}
You can get realtime information about hugs as they happen via Pusher using
the Pusher API Key {{ g.PUSHER_APP_KEY }}
and listening to the {{ g.PUSHER_EVENT }}
event in the {{ g.PUSHER_CHANNEL }}
channel. For more information about how to use Pusher, please
refer to their docs. The data received will be a JSON object looking
like this:
{ "created": unix timestamp, "hugged": { "avatar_url": avatar url, "hugs_given": amount of hugs given, "hugs_received": amount of hugs received, "name": username, "network": network ('github' for now), "url": url to view profile/get user info }, "hugger": { "avatar_url": avatar url, "hugs_given": amount of hugs given, "hugs_received": amount of hugs received, "name": username, "network": network ('github' for now), "url": url to view profile/get user info }, "week": weeknumber, "year": yearnumber }
To get information about a user, just make a GET
request to a users profile page (for example
https://www.githugs.org/user/github/ojii/
with the header Accept: application/json
.
The response will be a JSON representation of that user looking like this:
{ "avatar_url": avatar url, "hugs": [ { "created": unix timestamp, "hugged": username of hugged user, "hugger": username of hugger (this user), "week": weeknumber, "year": yearnumber } ], "hugs_given": amount of hugs this user gave, "hugs_received": amount of hugs this user received, "name": username, "network": network ('github' for now), "url": the URL of the user profile (the URL you requested) }


--- layout: post title: "The HTML5 DOM Element API: Dataset" date: 2011-10-18 published: true ---
Datasets are one of the new Element features added with the HTML5 spec. They allow you to add arbitrary attributes to DOM Elements that can be easily accessed and modified via JavaScript. These attributes are great for adding additional information for projects such as photo galleries that can use the attributes to enhance the display.
Datasets are added to an element via element attributes. A dataset attribute is prefixed by data-
and followed by the name. For example, data-author
.
For this post, we are going to use a photo gallery as an example of when you might want to use datasets to add additional markup to your HTML. To start, let us create the first div
with attributes that define the author, location, and date of the photo. Here is the markup:
As you can see, the three items we want in the dataset are prefixed by data-
and are assigned a value the same way as any other HTML attribute.
To access the dataset of an element, simply use the attribute dataset
. Here is a quick example.
The dataset
attribute returns a DOMStringMap, a new datatype added for datasets. Note: hyphenated attribute names are turned into camel case for JavaScript access.
Modifying an item in the dataset is very easy, just assign the property in the dataset a new value.
Deleting is equally easy, just use the keyword delete
and specify the property of the dataset to delete.
Like other HTML Element attributes, dataset attributes can be used as part of CSS selectors. Adding a blue background to all divs with Dave as the author looks like the following:
Datasets provide an easy way to associate little bits of meta data with your HTML tags and allows easy access from your JavaScript. For more intensive JavaScript applications you will still be better off using JavaScript objects to hold your state. However, for quick projects like a photo gallery, dataset attributes provide easy access to additional data for each element. As far as browser support, here is the caniuse page.


Click
here
to save the world as a PNG.