Ensure that activities and content providers are integrated into DI.

This commit is contained in:
Paul Hawke 2017-08-25 09:55:25 -05:00 committed by Paul Hawke
parent 8fe2816ca9
commit 7880a08c30
5 changed files with 90 additions and 100 deletions

View file

@ -2,48 +2,46 @@
package="fr.free.nrw.commons"> package="fr.free.nrw.commons">
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS"/> <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.READ_SYNC_STATS"/> <uses-permission android:name="android.permission.READ_SYNC_STATS" />
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS"/> <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"/> <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS"/> <uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS"/> <uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/> <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="android.permission.MANAGE_DOCUMENTS"/> <uses-permission android:name="android.permission.MANAGE_DOCUMENTS" />
<uses-permission android:name="com.google.android.apps.photos.permission.GOOGLE_PHOTOS"/> <uses-permission android:name="com.google.android.apps.photos.permission.GOOGLE_PHOTOS" />
<application <application
android:name=".CommonsApplication" android:name=".CommonsApplication"
android:icon="@drawable/ic_launcher" android:icon="@drawable/ic_launcher"
android:label="@string/app_name" android:label="@string/app_name"
android:theme="@style/Theme.AppCompat" android:supportsRtl="true"
android:supportsRtl="true" > android:theme="@style/Theme.AppCompat">
<activity android:name="org.acra.CrashReportDialog"
android:theme="@android:style/Theme.Dialog"
android:launchMode="singleInstance"
android:excludeFromRecents="true"
android:finishOnTaskLaunch="true" />
<activity <activity
android:name=".auth.LoginActivity" android:name="org.acra.CrashReportDialog"
> android:excludeFromRecents="true"
android:finishOnTaskLaunch="true"
android:launchMode="singleInstance"
android:theme="@android:style/Theme.Dialog" />
<activity android:name=".auth.LoginActivity">
<intent-filter> <intent-filter>
<category android:name="android.intent.category.LAUNCHER"/> <category android:name="android.intent.category.LAUNCHER" />
<action android:name="android.intent.action.MAIN"/> <action android:name="android.intent.action.MAIN" />
</intent-filter> </intent-filter>
</activity> </activity>
<activity
android:name=".WelcomeActivity" <activity android:name=".WelcomeActivity" />
>
</activity>
<activity <activity
android:name=".upload.ShareActivity" android:name=".upload.ShareActivity"
android:icon="@drawable/ic_launcher" android:icon="@drawable/ic_launcher"
android:label="@string/app_name" android:label="@string/app_name">
>
<intent-filter> <intent-filter>
<action android:name="android.intent.action.SEND" /> <action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT" />
@ -51,11 +49,11 @@
<data android:mimeType="audio/ogg" /> <data android:mimeType="audio/ogg" />
</intent-filter> </intent-filter>
</activity> </activity>
<activity <activity
android:name=".upload.MultipleShareActivity" android:name=".upload.MultipleShareActivity"
android:icon="@drawable/ic_launcher" android:icon="@drawable/ic_launcher"
android:label="@string/app_name" android:label="@string/app_name">
>
<intent-filter> <intent-filter>
<action android:name="android.intent.action.SEND_MULTIPLE" /> <action android:name="android.intent.action.SEND_MULTIPLE" />
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT" />
@ -67,31 +65,32 @@
<activity <activity
android:name=".contributions.ContributionsActivity" android:name=".contributions.ContributionsActivity"
android:icon="@drawable/ic_launcher" android:icon="@drawable/ic_launcher"
android:label="@string/app_name" android:label="@string/app_name" />
>
</activity>
<activity <activity
android:name=".settings.SettingsActivity" android:name=".settings.SettingsActivity"
android:label="@string/title_activity_settings" android:label="@string/title_activity_settings" />
/>
<activity <activity
android:name=".AboutActivity" android:name=".AboutActivity"
android:label="@string/title_activity_about" android:label="@string/title_activity_about"
android:parentActivityName=".contributions.ContributionsActivity" /> android:parentActivityName=".contributions.ContributionsActivity" />
<activity <activity
android:name=".auth.SignupActivity" android:name=".auth.SignupActivity"
android:label="@string/title_activity_signup"/> android:label="@string/title_activity_signup" />
<activity <activity
android:name=".nearby.NearbyActivity" android:name=".nearby.NearbyActivity"
android:label="@string/title_activity_nearby" android:label="@string/title_activity_nearby"
android:parentActivityName=".contributions.ContributionsActivity" /> android:parentActivityName=".contributions.ContributionsActivity" />
<service android:name=".upload.UploadService" > <service android:name=".upload.UploadService" />
</service>
<service <service
android:name=".auth.WikiAccountAuthenticatorService" android:name=".auth.WikiAccountAuthenticatorService"
android:exported="true" android:exported="true"
android:process=":auth" > android:process=":auth">
<intent-filter> <intent-filter>
<action android:name="android.accounts.AccountAuthenticator" /> <action android:name="android.accounts.AccountAuthenticator" />
</intent-filter> </intent-filter>
@ -105,8 +104,7 @@
android:name=".contributions.ContributionsSyncService" android:name=".contributions.ContributionsSyncService"
android:exported="true"> android:exported="true">
<intent-filter> <intent-filter>
<action <action android:name="android.content.SyncAdapter" />
android:name="android.content.SyncAdapter" />
</intent-filter> </intent-filter>
<meta-data <meta-data
android:name="android.content.SyncAdapter" android:name="android.content.SyncAdapter"
@ -117,8 +115,7 @@
android:name=".modifications.ModificationsSyncService" android:name=".modifications.ModificationsSyncService"
android:exported="true"> android:exported="true">
<intent-filter> <intent-filter>
<action <action android:name="android.content.SyncAdapter" />
android:name="android.content.SyncAdapter" />
</intent-filter> </intent-filter>
<meta-data <meta-data
android:name="android.content.SyncAdapter" android:name="android.content.SyncAdapter"
@ -132,31 +129,29 @@
android:grantUriPermissions="true"> android:grantUriPermissions="true">
<meta-data <meta-data
android:name="android.support.FILE_PROVIDER_PATHS" android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths"/> android:resource="@xml/provider_paths" />
</provider> </provider>
<provider <provider
android:name=".contributions.ContributionsContentProvider" android:name=".contributions.ContributionsContentProvider"
android:label="@string/provider_contributions"
android:syncable="true"
android:authorities="fr.free.nrw.commons.contributions.contentprovider" android:authorities="fr.free.nrw.commons.contributions.contentprovider"
android:exported="false"> android:exported="false"
</provider> android:label="@string/provider_contributions"
android:syncable="true" />
<provider <provider
android:name=".modifications.ModificationsContentProvider" android:name=".modifications.ModificationsContentProvider"
android:label="@string/provider_modifications"
android:syncable="true"
android:authorities="fr.free.nrw.commons.modifications.contentprovider" android:authorities="fr.free.nrw.commons.modifications.contentprovider"
android:exported="false"> android:exported="false"
</provider> android:label="@string/provider_modifications"
android:syncable="true" />
<provider <provider
android:name=".category.CategoryContentProvider" android:name=".category.CategoryContentProvider"
android:label="@string/provider_categories"
android:syncable="false"
android:authorities="fr.free.nrw.commons.categories.contentprovider" android:authorities="fr.free.nrw.commons.categories.contentprovider"
android:exported="false"> android:exported="false"
</provider> android:label="@string/provider_categories"
android:syncable="false" />
</application> </application>

View file

@ -276,7 +276,4 @@ public class Utils {
return value == null || value.trim().isEmpty(); return value == null || value.trim().isEmpty();
} }
public static boolean isDarkTheme(Context context) {
return PreferenceManager.getDefaultSharedPreferences(context).getBoolean("theme",false);
}
} }

View file

@ -16,16 +16,25 @@ import fr.free.nrw.commons.upload.ShareActivity;
public abstract class ActivityBuilderModule { public abstract class ActivityBuilderModule {
@ContributesAndroidInjector @ContributesAndroidInjector
abstract ContributionsActivity bindContributionsActivity(); abstract LoginActivity bindLoginActivity();
@ContributesAndroidInjector @ContributesAndroidInjector
abstract MultipleShareActivity bindMultipleShareActivity(); abstract WelcomeActivity bindWelcomeActivity();
@ContributesAndroidInjector @ContributesAndroidInjector
abstract ShareActivity bindShareActivity(); abstract ShareActivity bindShareActivity();
@ContributesAndroidInjector @ContributesAndroidInjector
abstract LoginActivity bindLoginActivity(); abstract MultipleShareActivity bindMultipleShareActivity();
@ContributesAndroidInjector
abstract ContributionsActivity bindContributionsActivity();
@ContributesAndroidInjector
abstract SettingsActivity bindSettingsActivity();
@ContributesAndroidInjector
abstract AboutActivity bindAboutActivity();
@ContributesAndroidInjector @ContributesAndroidInjector
abstract SignupActivity bindSignupActivity(); abstract SignupActivity bindSignupActivity();
@ -33,13 +42,4 @@ public abstract class ActivityBuilderModule {
@ContributesAndroidInjector @ContributesAndroidInjector
abstract NearbyActivity bindNearbyActivity(); abstract NearbyActivity bindNearbyActivity();
@ContributesAndroidInjector
abstract AboutActivity bindAboutActivity();
@ContributesAndroidInjector
abstract SettingsActivity bindSettingsActivity();
@ContributesAndroidInjector
abstract WelcomeActivity bindWelcomeActivity();
} }

View file

@ -12,13 +12,13 @@ import fr.free.nrw.commons.modifications.ModificationsContentProvider;
@Module @Module
public abstract class ContentProviderBuilderModule { public abstract class ContentProviderBuilderModule {
@ContributesAndroidInjector
abstract CategoryContentProvider bindCategoryContentProvider();
@ContributesAndroidInjector @ContributesAndroidInjector
abstract ContributionsContentProvider bindContributionsContentProvider(); abstract ContributionsContentProvider bindContributionsContentProvider();
@ContributesAndroidInjector @ContributesAndroidInjector
abstract ModificationsContentProvider bindModificationsContentProvider(); abstract ModificationsContentProvider bindModificationsContentProvider();
@ContributesAndroidInjector
abstract CategoryContentProvider bindCategoryContentProvider();
} }

View file

@ -3,19 +3,17 @@ package fr.free.nrw.commons.theme;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.preference.PreferenceManager; import android.preference.PreferenceManager;
import android.support.v7.app.AppCompatActivity;
import dagger.android.AndroidInjection; import dagger.android.DaggerActivity;
import fr.free.nrw.commons.R; import fr.free.nrw.commons.R;
import fr.free.nrw.commons.Utils;
public class BaseActivity extends AppCompatActivity { public class BaseActivity extends DaggerActivity {
boolean currentTheme; boolean currentTheme;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
AndroidInjection.inject(this); boolean currentThemeIsDark = PreferenceManager.getDefaultSharedPreferences(this).getBoolean("theme", false);
if(Utils.isDarkTheme(this)){ if (currentThemeIsDark) {
currentTheme = true; currentTheme = true;
setTheme(R.style.DarkAppTheme); setTheme(R.style.DarkAppTheme);
} else { } else {
@ -28,8 +26,8 @@ public class BaseActivity extends AppCompatActivity {
@Override @Override
protected void onResume() { protected void onResume() {
// Restart activity if theme is changed // Restart activity if theme is changed
boolean newTheme = PreferenceManager.getDefaultSharedPreferences(this).getBoolean("theme",false); boolean newTheme = PreferenceManager.getDefaultSharedPreferences(this).getBoolean("theme", false);
if(currentTheme!=newTheme){ //is activity theme changed if (currentTheme != newTheme) { //is activity theme changed
Intent intent = getIntent(); Intent intent = getIntent();
finish(); finish();
startActivity(intent); startActivity(intent);