mirror of
https://github.com/TwidereProject/Twidere-Android
synced 2025-02-02 09:46:51 +01:00
made bug report works again
This commit is contained in:
parent
593027bad0
commit
9e991346e1
@ -35,11 +35,16 @@ Twidere is a powerful twitter client for Android 4.0+, which gives you a full Ma
|
||||
|
||||
## Credits ##
|
||||
|
||||
### Material re-design ###
|
||||
|
||||
* [@Uucky_Lee](https://twitter.com/Uucky_Lee)
|
||||
|
||||
### Icon designers ###
|
||||
|
||||
* [@lordfriend](https://twitter.com/#!/lordfriend)
|
||||
* [@ilovinheart](https://twitter.com/#!/ilovinheart) (0.0.7 version)
|
||||
* [@Rieya](https://twitter.com/#!/Rieya) (0.0.6 version)
|
||||
* [@Linkzero](https://twitter.com/Linkzero)
|
||||
* [@lordfriend](https://twitter.com//lordfriend)
|
||||
* [@ilovinheart](https://twitter.com/ilovinheart) (0.0.7 version)
|
||||
* [@Rieya](https://twitter.com/Rieya) (0.0.6 version)
|
||||
|
||||
Thanks to their excellent design!
|
||||
|
||||
@ -91,7 +96,7 @@ Bitcoin: 1FHAVAzge7cj1LfCTMfnLL49DgA3mVUCuW
|
||||
|
||||
[@TwidereProject/donators](https://twitter.com/TwidereProject/lists/donators), if you haven't find your name, please contact @TwidereProject :)
|
||||
|
||||
Buy me a bread or anything you want :)
|
||||
Buy me a ~~bread~~ [game](http://steamcommunity.com/id/mariotaku/wishlist) or anything you want :)
|
||||
|
||||
---
|
||||
|
||||
|
2
twidere/.gitignore
vendored
2
twidere/.gitignore
vendored
@ -1 +1,3 @@
|
||||
/build
|
||||
|
||||
res-localized/
|
@ -44,6 +44,11 @@ android {
|
||||
versionNameSuffix String.format(" (dev %s)", format.format(new Date()))
|
||||
}
|
||||
}
|
||||
sourceSets {
|
||||
main {
|
||||
res.srcDirs = [project.file("src/$name/res"), project.file("src/$name/res-localized")]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
repositories {
|
||||
|
@ -1,60 +1,60 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="org.mariotaku.twidere"
|
||||
android:installLocation="auto" >
|
||||
package="org.mariotaku.twidere"
|
||||
android:installLocation="auto">
|
||||
|
||||
<uses-sdk />
|
||||
<uses-sdk/>
|
||||
|
||||
<uses-feature
|
||||
android:name="android.hardware.camera"
|
||||
android:required="false" />
|
||||
android:required="false"/>
|
||||
<uses-feature
|
||||
android:name="android.hardware.location"
|
||||
android:required="false" />
|
||||
android:required="false"/>
|
||||
<uses-feature
|
||||
android:name="android.hardware.location.gps"
|
||||
android:required="false" />
|
||||
android:required="false"/>
|
||||
<uses-feature
|
||||
android:name="android.hardware.location.network"
|
||||
android:required="false" />
|
||||
android:required="false"/>
|
||||
<uses-feature
|
||||
android:name="android.hardware.touchscreen"
|
||||
android:required="false" />
|
||||
android:required="false"/>
|
||||
<uses-feature
|
||||
android:name="android.hardware.nfc"
|
||||
android:required="false" />
|
||||
android:required="false"/>
|
||||
<uses-feature
|
||||
android:glEsVersion="0x00020000"
|
||||
android:required="true" />
|
||||
android:required="true"/>
|
||||
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.VIBRATE" />
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.NFC" />
|
||||
<uses-permission android:name="org.mariotaku.twidere.permission.SHORTEN_STATUS" />
|
||||
<uses-permission android:name="org.mariotaku.twidere.permission.UPLOAD_MEDIA" />
|
||||
<uses-permission android:name="org.mariotaku.twidere.permission.SYNC_TIMELINE" />
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
<uses-permission android:name="android.permission.VIBRATE"/>
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||
<uses-permission android:name="android.permission.NFC"/>
|
||||
<uses-permission android:name="org.mariotaku.twidere.permission.SHORTEN_STATUS"/>
|
||||
<uses-permission android:name="org.mariotaku.twidere.permission.UPLOAD_MEDIA"/>
|
||||
<uses-permission android:name="org.mariotaku.twidere.permission.SYNC_TIMELINE"/>
|
||||
|
||||
<permission-group
|
||||
android:name="org.mariotaku.twidere.permission.PERMISSION_GROUP"
|
||||
android:label="@string/app_name" />
|
||||
android:label="@string/app_name"/>
|
||||
|
||||
<permission
|
||||
android:name="org.mariotaku.twidere.permission.SHORTEN_STATUS"
|
||||
android:description="@string/permission_description_shorten_status"
|
||||
android:permissionGroup="org.mariotaku.twidere.permission.PERMISSION_GROUP" />
|
||||
android:permissionGroup="org.mariotaku.twidere.permission.PERMISSION_GROUP"/>
|
||||
<permission
|
||||
android:name="org.mariotaku.twidere.permission.UPLOAD_MEDIA"
|
||||
android:description="@string/permission_description_upload_media"
|
||||
android:permissionGroup="org.mariotaku.twidere.permission.PERMISSION_GROUP" />
|
||||
android:permissionGroup="org.mariotaku.twidere.permission.PERMISSION_GROUP"/>
|
||||
<permission
|
||||
android:name="org.mariotaku.twidere.permission.SYNC_TIMELINE"
|
||||
android:description="@string/permission_description_sync_timeline"
|
||||
android:permissionGroup="org.mariotaku.twidere.permission.PERMISSION_GROUP" />
|
||||
android:permissionGroup="org.mariotaku.twidere.permission.PERMISSION_GROUP"/>
|
||||
|
||||
<application
|
||||
android:name=".app.TwidereApplication"
|
||||
@ -63,32 +63,32 @@
|
||||
android:hardwareAccelerated="true"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:label="@string/app_name"
|
||||
android:theme="@style/Theme.Blank" >
|
||||
android:theme="@style/Theme.Blank">
|
||||
<uses-library
|
||||
android:name="com.sec.android.app.multiwindow"
|
||||
android:required="false" />
|
||||
android:required="false"/>
|
||||
|
||||
<meta-data
|
||||
android:name="com.google.android.backup.api_key"
|
||||
android:value="AEdPqrEAAAAIKbKATV1AGbLB4kem3w8QaPVJSPVVumbMHxkfwA" />
|
||||
android:value="AEdPqrEAAAAIKbKATV1AGbLB4kem3w8QaPVJSPVVumbMHxkfwA"/>
|
||||
<meta-data
|
||||
android:name="com.sec.android.support.multiwindow"
|
||||
android:value="true" />
|
||||
android:value="true"/>
|
||||
<meta-data
|
||||
android:name="com.sec.android.multiwindow.DEFAULT_SIZE_W"
|
||||
android:value="480dp" />
|
||||
android:value="480dp"/>
|
||||
<meta-data
|
||||
android:name="com.sec.android.multiwindow.DEFAULT_SIZE_H"
|
||||
android:value="640dp" />
|
||||
android:value="640dp"/>
|
||||
<meta-data
|
||||
android:name="com.sec.android.multiwindow.MINIMUM_SIZE_W"
|
||||
android:value="240dp" />
|
||||
android:value="240dp"/>
|
||||
<meta-data
|
||||
android:name="com.sec.android.multiwindow.MINIMUM_SIZE_H"
|
||||
android:value="320dp" />
|
||||
android:value="320dp"/>
|
||||
<meta-data
|
||||
android:name="override_tinted_status_bar_defaults"
|
||||
android:value="true" />
|
||||
android:value="true"/>
|
||||
|
||||
<activity
|
||||
android:name=".activity.MainActivity"
|
||||
@ -96,13 +96,13 @@
|
||||
android:label="@string/app_name"
|
||||
android:launchMode="singleTop"
|
||||
android:theme="@style/Theme.Launcher"
|
||||
android:windowSoftInputMode="adjustNothing" >
|
||||
android:windowSoftInputMode="adjustNothing">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
<category android:name="android.intent.category.MULTIWINDOW_LAUNCHER" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.LAUNCHER"/>
|
||||
<category android:name="android.intent.category.MULTIWINDOW_LAUNCHER"/>
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
@ -112,37 +112,37 @@
|
||||
android:label="@string/app_name"
|
||||
android:launchMode="singleTop"
|
||||
android:theme="@style/Theme.Launcher"
|
||||
android:windowSoftInputMode="adjustResize" >
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
<category android:name="android.intent.category.MULTIWINDOW_LAUNCHER" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.LAUNCHER"/>
|
||||
<category android:name="android.intent.category.MULTIWINDOW_LAUNCHER"/>
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".activity.support.HomeActivity"
|
||||
android:label="@string/app_name"
|
||||
android:launchMode="singleTop"
|
||||
android:windowSoftInputMode="adjustResize" >
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
<intent-filter>
|
||||
<action android:name="org.mariotaku.twidere.HOME" />
|
||||
<action android:name="org.mariotaku.twidere.HOME"/>
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.SEARCH" />
|
||||
<action android:name="android.intent.action.SEARCH"/>
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
</intent-filter>
|
||||
|
||||
<meta-data
|
||||
android:name="android.app.searchable"
|
||||
android:resource="@xml/searchable" />
|
||||
android:resource="@xml/searchable"/>
|
||||
<meta-data
|
||||
android:name="android.app.default_searchable"
|
||||
android:value=".activity.support.HomeActivity" />
|
||||
android:value=".activity.support.HomeActivity"/>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".activity.support.ComposeActivity"
|
||||
@ -150,246 +150,246 @@
|
||||
android:label="@string/compose"
|
||||
android:launchMode="singleTop"
|
||||
android:theme="@style/Theme.Blank.Dialog"
|
||||
android:windowSoftInputMode="adjustResize" >
|
||||
<intent-filter android:label="@string/compose" >
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<action android:name="org.mariotaku.twidere.COMPOSE" />
|
||||
<action android:name="org.mariotaku.twidere.REPLY" />
|
||||
<action android:name="org.mariotaku.twidere.QUOTE" />
|
||||
<action android:name="org.mariotaku.twidere.EDIT_DRAFT" />
|
||||
<action android:name="org.mariotaku.twidere.MENTION" />
|
||||
<action android:name="org.mariotaku.twidere.REPLY_MULTIPLE" />
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
<intent-filter android:label="@string/compose">
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
<action android:name="org.mariotaku.twidere.COMPOSE"/>
|
||||
<action android:name="org.mariotaku.twidere.REPLY"/>
|
||||
<action android:name="org.mariotaku.twidere.QUOTE"/>
|
||||
<action android:name="org.mariotaku.twidere.EDIT_DRAFT"/>
|
||||
<action android:name="org.mariotaku.twidere.MENTION"/>
|
||||
<action android:name="org.mariotaku.twidere.REPLY_MULTIPLE"/>
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
</intent-filter>
|
||||
<intent-filter android:label="@string/app_name" >
|
||||
<action android:name="android.intent.action.SEND" />
|
||||
<action android:name="android.intent.action.SEND_MULTIPLE" />
|
||||
<intent-filter android:label="@string/app_name">
|
||||
<action android:name="android.intent.action.SEND"/>
|
||||
<action android:name="android.intent.action.SEND_MULTIPLE"/>
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
|
||||
<data android:mimeType="image/*" />
|
||||
<data android:mimeType="text/plain" />
|
||||
<data android:mimeType="image/*"/>
|
||||
<data android:mimeType="text/plain"/>
|
||||
</intent-filter>
|
||||
|
||||
<meta-data
|
||||
android:name="android.support.PARENT_ACTIVITY"
|
||||
android:value=".activity.support.HomeActivity" />
|
||||
android:value=".activity.support.HomeActivity"/>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".activity.support.QuickSearchBarActivity"
|
||||
android:label="@android:string/search_go"
|
||||
android:launchMode="singleTop"
|
||||
android:theme="@style/Theme.Blank.Dialog"
|
||||
android:windowSoftInputMode="adjustResize" >
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
<intent-filter>
|
||||
<action android:name="org.mariotaku.twidere.GLOBAL_SEARCH" />
|
||||
<action android:name="org.mariotaku.twidere.GLOBAL_SEARCH"/>
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".activity.support.SignInActivity"
|
||||
android:label="@string/sign_in"
|
||||
android:windowSoftInputMode="adjustResize" >
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
<intent-filter>
|
||||
<action android:name="org.mariotaku.twidere.TWITTER_LOGIN" />
|
||||
<action android:name="org.mariotaku.twidere.TWITTER_LOGIN"/>
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".activity.support.BrowserSignInActivity"
|
||||
android:label="@string/browser_sign_in"
|
||||
android:theme="@style/Theme.Blank.Dialog"
|
||||
android:windowSoftInputMode="adjustResize" >
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
<intent-filter>
|
||||
<action android:name="org.mariotaku.twidere.TWITTER_BROWSER_LOGIN" />
|
||||
<action android:name="org.mariotaku.twidere.TWITTER_BROWSER_LOGIN"/>
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".activity.SettingsActivity"
|
||||
android:label="@string/settings"
|
||||
android:theme="@style/Theme.Blank"
|
||||
android:windowSoftInputMode="adjustResize" >
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MANAGE_NETWORK_USAGE" />
|
||||
<action android:name="org.mariotaku.twidere.SETTINGS" />
|
||||
<action android:name="android.intent.action.MANAGE_NETWORK_USAGE"/>
|
||||
<action android:name="org.mariotaku.twidere.SETTINGS"/>
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
</intent-filter>
|
||||
|
||||
<meta-data
|
||||
android:name="android.support.PARENT_ACTIVITY"
|
||||
android:value=".activity.support.HomeActivity" />
|
||||
android:value=".activity.support.HomeActivity"/>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".activity.FiltersActivity"
|
||||
android:label="@string/filters" >
|
||||
android:label="@string/filters">
|
||||
<intent-filter>
|
||||
<action android:name="org.mariotaku.twidere.FILTERS" />
|
||||
<action android:name="org.mariotaku.twidere.FILTERS"/>
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
</intent-filter>
|
||||
|
||||
<meta-data
|
||||
android:name="android.support.PARENT_ACTIVITY"
|
||||
android:value=".activity.support.HomeActivity" />
|
||||
android:value=".activity.support.HomeActivity"/>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".activity.support.APIEditorActivity"
|
||||
android:label="@string/edit_api"
|
||||
android:theme="@style/Theme.Blank.Dialog"
|
||||
android:windowSoftInputMode="adjustResize" />
|
||||
android:windowSoftInputMode="adjustResize"/>
|
||||
<activity
|
||||
android:name=".activity.support.AccountSelectorActivity"
|
||||
android:label="@string/select_account"
|
||||
android:theme="@style/Theme.Blank.Dialog" >
|
||||
android:theme="@style/Theme.Blank.Dialog">
|
||||
<intent-filter>
|
||||
<action android:name="org.mariotaku.twidere.SELECT_ACCOUNT" />
|
||||
<action android:name="org.mariotaku.twidere.SELECT_ACCOUNT"/>
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".activity.support.BrowserActivity"
|
||||
android:exported="false"
|
||||
android:label="@string/browser" >
|
||||
android:label="@string/browser">
|
||||
<intent-filter>
|
||||
<action android:name="org.mariotaku.twidere.VIEW_WEBPAGE" />
|
||||
<action android:name="org.mariotaku.twidere.VIEW_WEBPAGE"/>
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
|
||||
<data android:scheme="file" />
|
||||
<data android:scheme="http" />
|
||||
<data android:scheme="https" />
|
||||
<data android:scheme="file"/>
|
||||
<data android:scheme="http"/>
|
||||
<data android:scheme="https"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".activity.support.ColorPickerDialogActivity"
|
||||
android:label="@string/set_color"
|
||||
android:theme="@style/Theme.Twidere.Light.NoDisplay" />
|
||||
android:theme="@style/Theme.Twidere.Light.NoDisplay"/>
|
||||
<activity
|
||||
android:name=".activity.support.LinkHandlerActivity"
|
||||
android:windowSoftInputMode="adjustResize" >
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
<meta-data
|
||||
android:name="android.support.PARENT_ACTIVITY"
|
||||
android:value=".activity.support.HomeActivity" />
|
||||
android:value=".activity.support.HomeActivity"/>
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
<action android:name="android.intent.action.VIEW"/>
|
||||
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE"/>
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
|
||||
<data
|
||||
android:host="user"
|
||||
android:scheme="twidere" />
|
||||
android:scheme="twidere"/>
|
||||
<data
|
||||
android:host="users"
|
||||
android:scheme="twidere" />
|
||||
android:scheme="twidere"/>
|
||||
<data
|
||||
android:host="user_timeline"
|
||||
android:scheme="twidere" />
|
||||
android:scheme="twidere"/>
|
||||
<data
|
||||
android:host="user_media_timeline"
|
||||
android:scheme="twidere" />
|
||||
android:scheme="twidere"/>
|
||||
<data
|
||||
android:host="user_favorites"
|
||||
android:scheme="twidere" />
|
||||
android:scheme="twidere"/>
|
||||
<data
|
||||
android:host="user_followers"
|
||||
android:scheme="twidere" />
|
||||
android:scheme="twidere"/>
|
||||
<data
|
||||
android:host="user_friends"
|
||||
android:scheme="twidere" />
|
||||
android:scheme="twidere"/>
|
||||
<data
|
||||
android:host="user_blocks"
|
||||
android:scheme="twidere" />
|
||||
android:scheme="twidere"/>
|
||||
<data
|
||||
android:host="status"
|
||||
android:scheme="twidere" />
|
||||
android:scheme="twidere"/>
|
||||
<data
|
||||
android:host="status_retweeters"
|
||||
android:scheme="twidere" />
|
||||
android:scheme="twidere"/>
|
||||
<data
|
||||
android:host="status_favoriters"
|
||||
android:scheme="twidere" />
|
||||
android:scheme="twidere"/>
|
||||
<data
|
||||
android:host="status_replies"
|
||||
android:scheme="twidere" />
|
||||
android:scheme="twidere"/>
|
||||
<data
|
||||
android:host="statuses"
|
||||
android:scheme="twidere" />
|
||||
android:scheme="twidere"/>
|
||||
<data
|
||||
android:host="direct_messages_conversation"
|
||||
android:scheme="twidere" />
|
||||
android:scheme="twidere"/>
|
||||
<data
|
||||
android:host="user_list"
|
||||
android:scheme="twidere" />
|
||||
android:scheme="twidere"/>
|
||||
<data
|
||||
android:host="user_lists"
|
||||
android:scheme="twidere" />
|
||||
android:scheme="twidere"/>
|
||||
<data
|
||||
android:host="user_list_timeline"
|
||||
android:scheme="twidere" />
|
||||
android:scheme="twidere"/>
|
||||
<data
|
||||
android:host="user_list_members"
|
||||
android:scheme="twidere" />
|
||||
android:scheme="twidere"/>
|
||||
<data
|
||||
android:host="user_list_subscribers"
|
||||
android:scheme="twidere" />
|
||||
android:scheme="twidere"/>
|
||||
<data
|
||||
android:host="user_list_memberships"
|
||||
android:scheme="twidere" />
|
||||
android:scheme="twidere"/>
|
||||
<data
|
||||
android:host="saved_searches"
|
||||
android:scheme="twidere" />
|
||||
android:scheme="twidere"/>
|
||||
<data
|
||||
android:host="user_mentions"
|
||||
android:scheme="twidere" />
|
||||
android:scheme="twidere"/>
|
||||
<data
|
||||
android:host="incoming_friendships"
|
||||
android:scheme="twidere" />
|
||||
android:scheme="twidere"/>
|
||||
<data
|
||||
android:host="search"
|
||||
android:scheme="twidere" />
|
||||
android:scheme="twidere"/>
|
||||
<data
|
||||
android:host="mutes_users"
|
||||
android:scheme="twidere" />
|
||||
android:scheme="twidere"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".activity.support.DraftsActivity"
|
||||
android:exported="false"
|
||||
android:label="@string/drafts"
|
||||
android:launchMode="singleTop" >
|
||||
android:launchMode="singleTop">
|
||||
<intent-filter>
|
||||
<action android:name="org.mariotaku.twidere.DRAFTS" />
|
||||
<action android:name="org.mariotaku.twidere.DRAFTS"/>
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
</intent-filter>
|
||||
|
||||
<meta-data
|
||||
android:name="android.support.PARENT_ACTIVITY"
|
||||
android:value=".activity.support.HomeActivity" />
|
||||
android:value=".activity.support.HomeActivity"/>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".activity.support.AccountsManagerActivity"
|
||||
android:exported="false"
|
||||
android:label="@string/accounts"
|
||||
android:launchMode="singleTop" >
|
||||
android:launchMode="singleTop">
|
||||
<intent-filter>
|
||||
<action android:name="org.mariotaku.twidere.ACCOUNTS" />
|
||||
<action android:name="org.mariotaku.twidere.ACCOUNTS"/>
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
</intent-filter>
|
||||
|
||||
<meta-data
|
||||
android:name="android.support.PARENT_ACTIVITY"
|
||||
android:value=".activity.support.HomeActivity" />
|
||||
android:value=".activity.support.HomeActivity"/>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".activity.support.MediaViewerActivity"
|
||||
@ -397,16 +397,16 @@
|
||||
android:hardwareAccelerated="true"
|
||||
android:label="@string/media"
|
||||
android:launchMode="singleTop"
|
||||
android:theme="@style/Theme.Twidere.Viewer" >
|
||||
android:theme="@style/Theme.Twidere.Viewer">
|
||||
<intent-filter>
|
||||
<action android:name="org.mariotaku.twidere.VIEW_MEDIA" />
|
||||
<action android:name="org.mariotaku.twidere.VIEW_MEDIA"/>
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
<category android:name="android.intent.category.BROWSABLE"/>
|
||||
|
||||
<data android:scheme="http" />
|
||||
<data android:scheme="https" />
|
||||
<data android:scheme="file" />
|
||||
<data android:scheme="http"/>
|
||||
<data android:scheme="https"/>
|
||||
<data android:scheme="file"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
@ -414,255 +414,255 @@
|
||||
android:exported="false"
|
||||
android:label="@string/pick_file"
|
||||
android:theme="@style/Theme.Twidere.Light.NoDisplay"
|
||||
android:windowSoftInputMode="adjustResize" >
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
<intent-filter>
|
||||
<action android:name="org.mariotaku.twidere.PICK_FILE" />
|
||||
<action android:name="org.mariotaku.twidere.PICK_DIRECTORY" />
|
||||
<action android:name="org.mariotaku.twidere.PICK_FILE"/>
|
||||
<action android:name="org.mariotaku.twidere.PICK_DIRECTORY"/>
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".activity.support.ImagePickerActivity"
|
||||
android:exported="false"
|
||||
android:theme="@style/Theme.Twidere.Light.NoDisplay"
|
||||
android:windowSoftInputMode="adjustResize" >
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<action android:name="org.mariotaku.twidere.PICK_IMAGE" />
|
||||
<action android:name="org.mariotaku.twidere.TAKE_PHOTO" />
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
<action android:name="org.mariotaku.twidere.PICK_IMAGE"/>
|
||||
<action android:name="org.mariotaku.twidere.TAKE_PHOTO"/>
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".activity.support.UserProfileEditorActivity"
|
||||
android:exported="false"
|
||||
android:label="@string/edit_profile"
|
||||
android:windowSoftInputMode="adjustResize" >
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
<intent-filter>
|
||||
<action android:name="org.mariotaku.twidere.EDIT_USER_PROFILE" />
|
||||
<action android:name="org.mariotaku.twidere.EDIT_USER_PROFILE"/>
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".activity.CustomTabsActivity"
|
||||
android:label="@string/tabs"
|
||||
android:theme="@style/Theme.Blank" />
|
||||
android:theme="@style/Theme.Blank"/>
|
||||
<activity
|
||||
android:name=".activity.support.CustomTabEditorActivity"
|
||||
android:exported="false"
|
||||
android:label="@string/add_tab"
|
||||
android:theme="@style/Theme.Blank.Dialog"
|
||||
android:windowSoftInputMode="adjustResize" >
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
<intent-filter>
|
||||
<action android:name="org.mariotaku.twidere.ADD_TAB" />
|
||||
<action android:name="org.mariotaku.twidere.EDIT_TAB" />
|
||||
<action android:name="org.mariotaku.twidere.ADD_TAB"/>
|
||||
<action android:name="org.mariotaku.twidere.EDIT_TAB"/>
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".activity.CreateComposeShortcutActivity"
|
||||
android:label="@string/compose"
|
||||
android:theme="@style/Theme.Twidere.Dark.NoDisplay" >
|
||||
android:theme="@style/Theme.Twidere.Dark.NoDisplay">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.CREATE_SHORTCUT" />
|
||||
<action android:name="android.intent.action.CREATE_SHORTCUT"/>
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".activity.support.RequestPermissionsActivity"
|
||||
android:label="@string/permissions_request"
|
||||
android:theme="@style/Theme.Blank.Dialog" >
|
||||
android:theme="@style/Theme.Blank.Dialog">
|
||||
<intent-filter>
|
||||
<action android:name="org.mariotaku.twidere.REQUEST_PERMISSIONS" />
|
||||
<action android:name="org.mariotaku.twidere.REQUEST_PERMISSIONS"/>
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".activity.CameraCropActivity"
|
||||
android:exported="false" >
|
||||
android:exported="false">
|
||||
<intent-filter>
|
||||
<action android:name="org.mariotaku.twidere.CAMERA_CROP" />
|
||||
<action android:name="org.mariotaku.twidere.CAMERA_CROP"/>
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".activity.support.UserListSelectorActivity"
|
||||
android:label="@string/select_user_list"
|
||||
android:theme="@style/Theme.Blank.Dialog" >
|
||||
android:theme="@style/Theme.Blank.Dialog">
|
||||
<intent-filter>
|
||||
<action android:name="org.mariotaku.twidere.SELECT_USER" />
|
||||
<action android:name="org.mariotaku.twidere.SELECT_USER_LIST" />
|
||||
<action android:name="org.mariotaku.twidere.SELECT_USER"/>
|
||||
<action android:name="org.mariotaku.twidere.SELECT_USER_LIST"/>
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".activity.SettingsWizardActivity"
|
||||
android:label="@string/settings_wizard"
|
||||
android:theme="@style/Theme.Twidere.Wizard" />
|
||||
android:theme="@style/Theme.Twidere.Wizard"/>
|
||||
<activity
|
||||
android:name=".activity.support.DataExportActivity"
|
||||
android:label="@string/export_settings"
|
||||
android:theme="@android:style/Theme.NoDisplay" />
|
||||
android:theme="@android:style/Theme.NoDisplay"/>
|
||||
<activity
|
||||
android:name=".activity.support.DataImportActivity"
|
||||
android:label="@string/import_settings"
|
||||
android:theme="@android:style/Theme.NoDisplay" />
|
||||
android:theme="@android:style/Theme.NoDisplay"/>
|
||||
<activity
|
||||
android:name=".activity.support.ActivityPickerActivity"
|
||||
android:theme="@style/Theme.Blank.Dialog" >
|
||||
android:theme="@style/Theme.Blank.Dialog">
|
||||
<intent-filter>
|
||||
<action android:name="org.mariotaku.twidere.PICK_ACTIVITY" />
|
||||
<action android:name="org.mariotaku.twidere.PICK_ACTIVITY"/>
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".activity.TwitterLinkHandlerActivity"
|
||||
android:excludeFromRecents="true"
|
||||
android:taskAffinity=":twidere_twitter_link_handler"
|
||||
android:theme="@style/Theme.Launcher" >
|
||||
android:theme="@style/Theme.Launcher">
|
||||
<intent-filter>
|
||||
<data
|
||||
android:host="twitter.com"
|
||||
android:scheme="http" />
|
||||
android:scheme="http"/>
|
||||
<data
|
||||
android:host="twitter.com"
|
||||
android:scheme="https" />
|
||||
android:scheme="https"/>
|
||||
<data
|
||||
android:host="www.twitter.com"
|
||||
android:scheme="http" />
|
||||
android:scheme="http"/>
|
||||
<data
|
||||
android:host="www.twitter.com"
|
||||
android:scheme="https" />
|
||||
android:scheme="https"/>
|
||||
<data
|
||||
android:host="mobile.twitter.com"
|
||||
android:scheme="http" />
|
||||
android:scheme="http"/>
|
||||
<data
|
||||
android:host="mobile.twitter.com"
|
||||
android:scheme="https" />
|
||||
android:scheme="https"/>
|
||||
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
|
||||
<action android:name="android.intent.action.VIEW"/>
|
||||
<action android:name="android.nfc.action.NDEF_DISCOVERED"/>
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
<category android:name="android.intent.category.BROWSABLE"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".activity.AssistLauncherActivity"
|
||||
android:excludeFromRecents="true"
|
||||
android:taskAffinity=":twidere_assist_launcher"
|
||||
android:theme="@style/Theme.Launcher" >
|
||||
android:theme="@style/Theme.Launcher">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.ASSIST" />
|
||||
<action android:name="android.intent.action.ASSIST"/>
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
</intent-filter>
|
||||
|
||||
<meta-data
|
||||
android:name="com.android.systemui.action_assist_icon"
|
||||
android:resource="@drawable/ic_assist_twidere" />
|
||||
android:resource="@drawable/ic_assist_twidere"/>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".activity.TestActivity"
|
||||
android:enabled="false"
|
||||
android:label="Twidere test"
|
||||
android:launchMode="singleTop"
|
||||
android:windowSoftInputMode="adjustResize" >
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
<category android:name="android.intent.category.LAUNCHER"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".activity.NyanActivity"
|
||||
android:launchMode="singleTop"
|
||||
android:theme="@style/Theme.Nyan"
|
||||
android:windowSoftInputMode="stateAlwaysHidden" />
|
||||
android:windowSoftInputMode="stateAlwaysHidden"/>
|
||||
<activity
|
||||
android:name=".activity.support.UsageStatisticsActivity"
|
||||
android:label="@string/title_activity_usage_statistics" >
|
||||
</activity>
|
||||
android:theme="@android:style/Theme.NoDisplay"
|
||||
android:label="@string/usage_statistics"/>
|
||||
|
||||
<service
|
||||
android:name=".service.RefreshService"
|
||||
android:label="@string/label_refresh_service"
|
||||
android:settingsActivity=".activity.SettingsActivity" />
|
||||
android:settingsActivity=".activity.SettingsActivity"/>
|
||||
<service
|
||||
android:name=".service.BackgroundOperationService"
|
||||
android:label="@string/label_background_operation_service" />
|
||||
android:label="@string/label_background_operation_service"/>
|
||||
<service
|
||||
android:name="edu.ucdavis.earlybird.UCDService"
|
||||
android:settingsActivity=".activity.support.UsageStatisticsActivity" />
|
||||
android:settingsActivity=".activity.support.UsageStatisticsActivity"/>
|
||||
<!-- SPICE -->
|
||||
<service
|
||||
android:name="edu.tsinghua.spice.SpiceService"
|
||||
android:settingsActivity=".activity.support.UsageStatisticsActivity" />
|
||||
android:settingsActivity=".activity.support.UsageStatisticsActivity"/>
|
||||
<service
|
||||
android:name=".service.DashClockHomeUnreadCountService"
|
||||
android:icon="@drawable/ic_extension_twidere"
|
||||
android:label="@string/dashclock_home_unread_count_name"
|
||||
android:permission="com.google.android.apps.dashclock.permission.READ_EXTENSION_DATA" >
|
||||
android:permission="com.google.android.apps.dashclock.permission.READ_EXTENSION_DATA">
|
||||
<intent-filter>
|
||||
<action android:name="com.google.android.apps.dashclock.Extension" />
|
||||
<action android:name="com.google.android.apps.dashclock.Extension"/>
|
||||
</intent-filter>
|
||||
|
||||
<meta-data
|
||||
android:name="protocolVersion"
|
||||
android:value="2" />
|
||||
android:value="2"/>
|
||||
<meta-data
|
||||
android:name="worldReadable"
|
||||
android:value="true" />
|
||||
android:value="true"/>
|
||||
<meta-data
|
||||
android:name="description"
|
||||
android:value="@string/dashclock_home_unread_count_description" />
|
||||
android:value="@string/dashclock_home_unread_count_description"/>
|
||||
</service>
|
||||
<service
|
||||
android:name=".service.DashClockMentionsUnreadCountService"
|
||||
android:icon="@drawable/ic_extension_mentions"
|
||||
android:label="@string/dashclock_mentions_unread_count_name"
|
||||
android:permission="com.google.android.apps.dashclock.permission.READ_EXTENSION_DATA" >
|
||||
android:permission="com.google.android.apps.dashclock.permission.READ_EXTENSION_DATA">
|
||||
<intent-filter>
|
||||
<action android:name="com.google.android.apps.dashclock.Extension" />
|
||||
<action android:name="com.google.android.apps.dashclock.Extension"/>
|
||||
</intent-filter>
|
||||
|
||||
<meta-data
|
||||
android:name="protocolVersion"
|
||||
android:value="2" />
|
||||
android:value="2"/>
|
||||
<meta-data
|
||||
android:name="worldReadable"
|
||||
android:value="true" />
|
||||
android:value="true"/>
|
||||
<meta-data
|
||||
android:name="description"
|
||||
android:value="@string/dashclock_mentions_unread_count_description" />
|
||||
android:value="@string/dashclock_mentions_unread_count_description"/>
|
||||
</service>
|
||||
<service
|
||||
android:name=".service.DashClockMessagesUnreadCountService"
|
||||
android:icon="@drawable/ic_extension_messages"
|
||||
android:label="@string/dashclock_messages_unread_count_name"
|
||||
android:permission="com.google.android.apps.dashclock.permission.READ_EXTENSION_DATA" >
|
||||
android:permission="com.google.android.apps.dashclock.permission.READ_EXTENSION_DATA">
|
||||
<intent-filter>
|
||||
<action android:name="com.google.android.apps.dashclock.Extension" />
|
||||
<action android:name="com.google.android.apps.dashclock.Extension"/>
|
||||
</intent-filter>
|
||||
|
||||
<meta-data
|
||||
android:name="protocolVersion"
|
||||
android:value="2" />
|
||||
android:value="2"/>
|
||||
<meta-data
|
||||
android:name="worldReadable"
|
||||
android:value="true" />
|
||||
android:value="true"/>
|
||||
<meta-data
|
||||
android:name="description"
|
||||
android:value="@string/dashclock_messages_unread_count_description" />
|
||||
android:value="@string/dashclock_messages_unread_count_description"/>
|
||||
</service>
|
||||
<service
|
||||
android:name=".nyan.NyanWallpaperService"
|
||||
@ -671,14 +671,14 @@
|
||||
android:icon="@drawable/nyan_sakamoto_thumbnail"
|
||||
android:label="@string/nyan_sakamoto"
|
||||
android:permission="android.permission.BIND_WALLPAPER"
|
||||
android:process=":wallpaper" >
|
||||
<intent-filter android:priority="1" >
|
||||
<action android:name="android.service.wallpaper.WallpaperService" />
|
||||
android:process=":wallpaper">
|
||||
<intent-filter android:priority="1">
|
||||
<action android:name="android.service.wallpaper.WallpaperService"/>
|
||||
</intent-filter>
|
||||
|
||||
<meta-data
|
||||
android:name="android.service.wallpaper"
|
||||
android:resource="@xml/nyan_wallpaper" />
|
||||
android:resource="@xml/nyan_wallpaper"/>
|
||||
</service>
|
||||
<service
|
||||
android:name=".nyan.NyanDaydreamService"
|
||||
@ -686,9 +686,9 @@
|
||||
android:exported="true"
|
||||
android:icon="@drawable/nyan_sakamoto_thumbnail"
|
||||
android:label="@string/nyan_sakamoto"
|
||||
android:process=":daydream" >
|
||||
<intent-filter android:priority="1" >
|
||||
<action android:name="android.service.dreams.DreamService" />
|
||||
android:process=":daydream">
|
||||
<intent-filter android:priority="1">
|
||||
<action android:name="android.service.dreams.DreamService"/>
|
||||
</intent-filter>
|
||||
</service>
|
||||
|
||||
@ -697,50 +697,50 @@
|
||||
android:authorities="twidere"
|
||||
android:exported="true"
|
||||
android:grantUriPermissions="true"
|
||||
android:label="@string/label_tweetstore_provider" />
|
||||
android:label="@string/label_tweetstore_provider"/>
|
||||
<provider
|
||||
android:name=".provider.TwidereCommandProvider"
|
||||
android:authorities="twidere.command"
|
||||
android:exported="true" />
|
||||
android:exported="true"/>
|
||||
<provider
|
||||
android:name=".provider.RecentSearchProvider"
|
||||
android:authorities="org.mariotaku.twidere.provider.SearchRecentSuggestions" />
|
||||
android:authorities="org.mariotaku.twidere.provider.SearchRecentSuggestions"/>
|
||||
|
||||
<receiver android:name=".receiver.ConnectivityStateReceiver" >
|
||||
<receiver android:name=".receiver.ConnectivityStateReceiver">
|
||||
<intent-filter>
|
||||
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
|
||||
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
<receiver
|
||||
android:name=".receiver.SecretCodeBroadcastReceiver"
|
||||
android:label="@string/twidere_test" >
|
||||
android:label="@string/twidere_test">
|
||||
<intent-filter>
|
||||
<action android:name="android.provider.Telephony.SECRET_CODE" />
|
||||
<action android:name="android.provider.Telephony.SECRET_CODE"/>
|
||||
|
||||
<data
|
||||
android:host="8943373"
|
||||
android:scheme="android_secret_code" />
|
||||
android:scheme="android_secret_code"/>
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
<receiver
|
||||
android:name="edu.ucdavis.earlybird.UploadReceiver"
|
||||
android:exported="false" >
|
||||
android:exported="false">
|
||||
<intent-filter>
|
||||
<action android:name="android.net.wifi.supplicant.CONNECTION_CHANGE" />
|
||||
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
|
||||
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
|
||||
<action android:name="edu.ucdavis.earlybird.UPLOAD_PROFILE" />
|
||||
<action android:name="android.net.wifi.supplicant.CONNECTION_CHANGE"/>
|
||||
<action android:name="android.intent.action.ACTION_POWER_CONNECTED"/>
|
||||
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/>
|
||||
<action android:name="edu.ucdavis.earlybird.UPLOAD_PROFILE"/>
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
<!-- SPICE -->
|
||||
<receiver
|
||||
android:name="edu.tsinghua.spice.SpiceUploadReceiver"
|
||||
android:exported="false" >
|
||||
android:exported="false">
|
||||
<intent-filter>
|
||||
<action android:name="android.net.wifi.supplicant.CONNECTION_CHANGE" />
|
||||
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
|
||||
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
|
||||
<action android:name="edu.tsinghua.spice.UPLOAD_PROFILE" />
|
||||
<action android:name="android.net.wifi.supplicant.CONNECTION_CHANGE"/>
|
||||
<action android:name="android.intent.action.ACTION_POWER_CONNECTED"/>
|
||||
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/>
|
||||
<action android:name="edu.tsinghua.spice.UPLOAD_PROFILE"/>
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
|
@ -54,6 +54,7 @@ import org.mariotaku.twidere.view.holder.GapViewHolder;
|
||||
import org.mariotaku.twidere.view.holder.StatusViewHolder;
|
||||
|
||||
import edu.tsinghua.spice.Utilies.SpiceProfilingUtil;
|
||||
import edu.tsinghua.spice.Utilies.TypeMappingUtil;
|
||||
|
||||
import static org.mariotaku.twidere.util.Utils.setMenuForStatus;
|
||||
|
||||
@ -354,17 +355,21 @@ public abstract class AbsStatusesFragment<Data> extends BaseSupportFragment impl
|
||||
twitter.destroyFavoriteAsync(status.account_id, status.id);
|
||||
//spice
|
||||
SpiceProfilingUtil.profile(activity, status.account_id, status.id + ",Unfavor,"
|
||||
+ status.account_id + "," + status.user_id + "," + status.reply_count + "," + status.retweet_count + "," + status.favorite_count + "," + status.timestamp);
|
||||
+ status.account_id + "," + status.user_id + "," + status.reply_count
|
||||
+ "," + status.retweet_count + "," + status.favorite_count + "," + status.timestamp);
|
||||
SpiceProfilingUtil.log(activity, status.id + ",Unfavor,"
|
||||
+ status.account_id + "," + status.user_id + "," + status.reply_count + "," + status.retweet_count + "," + status.favorite_count + "," + status.timestamp);
|
||||
+ status.account_id + "," + status.user_id + "," + status.reply_count
|
||||
+ "," + status.retweet_count + "," + status.favorite_count + "," + status.timestamp);
|
||||
//end
|
||||
} else {
|
||||
twitter.createFavoriteAsync(status.account_id, status.id);
|
||||
//spice
|
||||
SpiceProfilingUtil.profile(activity, status.account_id, status.id + ",Favor,"
|
||||
+ status.account_id + "," + status.user_id + "," + status.reply_count + "," + status.retweet_count + "," + status.favorite_count + "," + status.timestamp);
|
||||
+ status.account_id + "," + status.user_id + "," + status.reply_count
|
||||
+ "," + status.retweet_count + "," + status.favorite_count + "," + status.timestamp);
|
||||
SpiceProfilingUtil.log(activity, status.id + ",Favor,"
|
||||
+ status.account_id + "," + status.user_id + "," + status.reply_count + "," + status.retweet_count + "," + status.favorite_count + "," + status.timestamp);
|
||||
+ status.account_id + "," + status.user_id + "," + status.reply_count
|
||||
+ "," + status.retweet_count + "," + status.favorite_count + "," + status.timestamp);
|
||||
//end
|
||||
}
|
||||
break;
|
||||
@ -452,6 +457,16 @@ public abstract class AbsStatusesFragment<Data> extends BaseSupportFragment impl
|
||||
final ParcelableStatus status = mAdapter.getStatus(position);
|
||||
if (status == null) return;
|
||||
Utils.openMedia(getActivity(), status, media);
|
||||
//spice
|
||||
SpiceProfilingUtil.log(getActivity(),
|
||||
status.id + ",Clicked," + status.account_id + "," + status.user_id + ","
|
||||
+ status.text_plain.length() + "," + media.media_url + ","
|
||||
+ TypeMappingUtil.getMediaType(media.type) + "," + status.timestamp);
|
||||
SpiceProfilingUtil.profile(getActivity(), status.account_id,
|
||||
status.id + ",Clicked," + status.account_id + "," + status.user_id + ","
|
||||
+ status.text_plain.length() + "," + media.media_url + ","
|
||||
+ TypeMappingUtil.getMediaType(media.type) + "," + status.timestamp);
|
||||
//end
|
||||
}
|
||||
|
||||
private void updateRefreshProgressOffset() {
|
||||
|
@ -391,7 +391,7 @@ public class StatusFragment extends BaseSupportFragment
|
||||
+ "," + status.text_plain.length() + "," + status.timestamp);
|
||||
} else {
|
||||
for (final ParcelableMedia spiceMedia : status.media) {
|
||||
if (TypeMappingUtil.getMediaType(spiceMedia.type).equals("image")) {
|
||||
if (spiceMedia.type == ParcelableMedia.TYPE_IMAGE) {
|
||||
SpiceProfilingUtil.profile(getActivity(), status.account_id,
|
||||
status.id + ",PreviewM," + status.account_id + "," + status.user_id
|
||||
+ "," + status.reply_count + "," + status.retweet_count + "," + status.favorite_count
|
||||
|
@ -24,28 +24,24 @@ import android.os.Build;
|
||||
import android.os.Build.VERSION;
|
||||
import android.text.TextUtils;
|
||||
import android.util.JsonReader;
|
||||
import android.util.JsonWriter;
|
||||
import android.util.Log;
|
||||
|
||||
import com.squareup.okhttp.MediaType;
|
||||
import com.squareup.okhttp.OkHttpClient;
|
||||
import com.squareup.okhttp.Request;
|
||||
import com.squareup.okhttp.Request.Builder;
|
||||
import com.squareup.okhttp.RequestBody;
|
||||
import com.squareup.okhttp.Response;
|
||||
|
||||
import org.acra.ACRA;
|
||||
import org.acra.ErrorReporter;
|
||||
import org.acra.ReportField;
|
||||
import org.acra.collector.CrashReportData;
|
||||
import org.acra.sender.ReportSender;
|
||||
import org.acra.sender.ReportSenderException;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
import org.mariotaku.twidere.BuildConfig;
|
||||
import org.mariotaku.twidere.Constants;
|
||||
import org.mariotaku.twidere.app.TwidereApplication;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.Locale;
|
||||
import java.util.Scanner;
|
||||
@ -63,7 +59,7 @@ public class BugReporter implements Constants {
|
||||
|
||||
public static class GitHubIssueReportSender implements ReportSender {
|
||||
|
||||
private static final String AUTH_TOKEN = "208aacee0f51338a85ba5e9e3da54859981456ca";
|
||||
private static final String AUTH_TOKEN = "be96f826b8d1947e3a988cace182b57bf8b2cd00";
|
||||
private static final String USER_REPO = "mariotaku-bugreport/Twidere-Android.bugreport.test";
|
||||
|
||||
@Override
|
||||
@ -83,23 +79,19 @@ public class BugReporter implements Constants {
|
||||
titleBuilder.append(checksum);
|
||||
titleBuilder.append(" ");
|
||||
titleBuilder.append(titleContent);
|
||||
final JSONObject json = new JSONObject();
|
||||
try {
|
||||
json.put("title", titleBuilder.toString());
|
||||
json.put("body", bodyBuilder.toString());
|
||||
} catch (JSONException e) {
|
||||
throw new ReportSenderException("Error processing report json", e);
|
||||
}
|
||||
final OkHttpClient client = new OkHttpClient();
|
||||
final Request.Builder searchIssueBuilder = new Request.Builder();
|
||||
final String query = String.format(Locale.ROOT, "%s repo:%s", checksum, USER_REPO);
|
||||
final Uri.Builder searchIssueUrlBuilder = Uri.parse("https://api.github.com/search/issues").buildUpon();
|
||||
searchIssueUrlBuilder.appendQueryParameter("q", query);
|
||||
searchIssueBuilder.url(searchIssueUrlBuilder.build().toString());
|
||||
authorizeRequest(searchIssueBuilder);
|
||||
HttpURLConnection searchIssueConnection = null;
|
||||
int searchIssueConnectionStatus = -1;
|
||||
try {
|
||||
final Response response = client.newCall(searchIssueBuilder.build()).execute();
|
||||
final JsonReader jsonReader = new JsonReader(response.body().charStream());
|
||||
searchIssueConnection = (HttpURLConnection) new URL(searchIssueUrlBuilder.build().toString()).openConnection();
|
||||
searchIssueConnection.setRequestMethod("GET");
|
||||
authorizeRequest(searchIssueConnection);
|
||||
searchIssueConnection.setDoInput(true);
|
||||
searchIssueConnectionStatus = searchIssueConnection.getResponseCode();
|
||||
final InputStreamReader reader = new InputStreamReader(searchIssueConnection.getInputStream());
|
||||
final JsonReader jsonReader = new JsonReader(reader);
|
||||
boolean isDuplicate = false;
|
||||
jsonReader.beginObject();
|
||||
while (jsonReader.hasNext()) {
|
||||
@ -115,18 +107,34 @@ public class BugReporter implements Constants {
|
||||
return;
|
||||
}
|
||||
} catch (IOException e) {
|
||||
final String msg = "Network error when searching issues";
|
||||
final String msg = "Network error when searching issues, code " + searchIssueConnectionStatus;
|
||||
Log.w(LOGTAG, msg, e);
|
||||
throw new ReportSenderException(msg, e);
|
||||
} finally {
|
||||
if (searchIssueConnection != null) {
|
||||
searchIssueConnection.disconnect();
|
||||
}
|
||||
}
|
||||
final RequestBody issueBody = RequestBody.create(MediaType.parse("application/json"), json.toString());
|
||||
final Request.Builder createIssueBuilder = new Request.Builder();
|
||||
createIssueBuilder.url(String.format(Locale.ROOT, "https://api.github.com/repos/%s/issues", USER_REPO));
|
||||
createIssueBuilder.post(issueBody);
|
||||
authorizeRequest(createIssueBuilder);
|
||||
|
||||
createIssue(bodyBuilder.toString(), titleBuilder.toString());
|
||||
}
|
||||
|
||||
private void createIssue(String body, String title) throws ReportSenderException {
|
||||
HttpURLConnection createIssueConnection;
|
||||
try {
|
||||
final Response response = client.newCall(createIssueBuilder.build()).execute();
|
||||
final String location = response.header("Location");
|
||||
createIssueConnection = (HttpURLConnection) new URL(String.format(Locale.ROOT, "https://api.github.com/repos/%s/issues", USER_REPO)).openConnection();
|
||||
createIssueConnection.setRequestMethod("POST");
|
||||
authorizeRequest(createIssueConnection);
|
||||
createIssueConnection.setRequestProperty("Content-Type", "application/json");
|
||||
createIssueConnection.setDoOutput(true);
|
||||
final JsonWriter writer = new JsonWriter(new OutputStreamWriter(createIssueConnection.getOutputStream()));
|
||||
writer.beginObject();
|
||||
writer.name("title").value(title);
|
||||
writer.name("body").value(body);
|
||||
writer.endObject();
|
||||
writer.flush();
|
||||
createIssueConnection.connect();
|
||||
final String location = createIssueConnection.getHeaderField("Location");
|
||||
if (!TextUtils.isEmpty(location)) {
|
||||
Log.d(LOGTAG, "Issue created at " + location);
|
||||
}
|
||||
@ -166,10 +174,10 @@ public class BugReporter implements Constants {
|
||||
bodyBuilder.append("\n````");
|
||||
}
|
||||
|
||||
private void authorizeRequest(Builder builder) {
|
||||
builder.header("Authorization", "token " + AUTH_TOKEN);
|
||||
builder.header("Accept", "application/vnd.github.v3+json");
|
||||
builder.header("User-Agent", "Twidere (" + BuildConfig.VERSION_NAME + ")");
|
||||
private void authorizeRequest(HttpURLConnection builder) {
|
||||
builder.setRequestProperty("Authorization", String.format(Locale.ROOT, "token %s", AUTH_TOKEN));
|
||||
builder.setRequestProperty("Accept", "application/vnd.github.v3+json");
|
||||
builder.setRequestProperty("User-Agent", "Twidere (" + BuildConfig.VERSION_NAME + ")");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -729,10 +729,6 @@
|
||||
<string name="permission_description_shorten_status">Application can shorten tweet for Twidere, so it can access your tweet to send.</string>
|
||||
<string name="permission_description_upload_media">Application can upload media for Twidere, so it can access media in your tweet to send.</string>
|
||||
<string name="permission_description_sync_timeline">Application can sync read position for Twidere, so it can access your read position.</string>
|
||||
<string name="title_activity_usage_statistics">UsageStatisticsActivity</string>
|
||||
|
||||
<string name="hello_world">Hello world!</string>
|
||||
<string name="action_settings">Settings</string>
|
||||
<string name="usage_statistics_notification_summary">Help us improve Twidere!</string>
|
||||
<string name="from_name">From <xliff:g id="name">%1$s</xliff:g></string>
|
||||
<string name="from_name_and_name">From <xliff:g id="name">%1$s</xliff:g> and <xliff:g id="name">%2$s</xliff:g></string>
|
||||
|
Loading…
x
Reference in New Issue
Block a user