From bba9853778f5695d19d626044b27b236d5f2488e Mon Sep 17 00:00:00 2001 From: mimi89999 Date: Fri, 2 Feb 2018 22:18:58 +0100 Subject: [PATCH] Update Dziennik to 0.5.0-fdroid (9) --- metadata/com.wabadaba.dziennik.txt | 7 + .../0005-Remove-GCM.patch | 289 ++++++++++++++++++ 2 files changed, 296 insertions(+) create mode 100644 metadata/com.wabadaba.dziennik/0005-Remove-GCM.patch diff --git a/metadata/com.wabadaba.dziennik.txt b/metadata/com.wabadaba.dziennik.txt index d0125db5bf..60963ece84 100644 --- a/metadata/com.wabadaba.dziennik.txt +++ b/metadata/com.wabadaba.dziennik.txt @@ -46,6 +46,13 @@ Build:0.4.1-fdroid,6 output=build/outputs/apk/full/release/app-full-release-unsigned.apk prebuild=sed -i -e '/dl.bintray.com/d' -e '/kluent/d' -e '/Android Test/,+3d' ../build.gradle build.gradle +Build:0.5.0-fdroid,9 + commit=0.5.0 + subdir=app + patch=0005-Remove-GCM.patch + gradle=full + prebuild=sed -i -e '/dl.bintray.com/d' -e '/kluent/d' -e '/Android Test/,+3d' ../build.gradle build.gradle + Auto Update Mode:None Update Check Mode:Tags Current Version:0.5.0 diff --git a/metadata/com.wabadaba.dziennik/0005-Remove-GCM.patch b/metadata/com.wabadaba.dziennik/0005-Remove-GCM.patch new file mode 100644 index 0000000000..bf4485a5d9 --- /dev/null +++ b/metadata/com.wabadaba.dziennik/0005-Remove-GCM.patch @@ -0,0 +1,289 @@ +From f3115b0a6c167bfcc818a43dc067ffb2c297c442 Mon Sep 17 00:00:00 2001 +From: mimi89999 +Date: Fri, 2 Feb 2018 22:06:03 +0100 +Subject: [PATCH] Remove GCM + +--- + app/build.gradle | 6 +-- + .../com/wabadaba/dziennik/MainApplication.kt | 6 +-- + .../notification/LibrusGCMRegistrationManager.kt | 57 ---------------------- + .../api/notification/LibrusGcmListenerService.kt | 57 ---------------------- + .../com/wabadaba/dziennik/di/ApplicationModule.kt | 6 --- + .../com/wabadaba/dziennik/di/MainComponent.kt | 2 - + .../com/wabadaba/dziennik/ui/GPServicesChecker.kt | 11 ----- + build.gradle | 3 +- + 8 files changed, 3 insertions(+), 145 deletions(-) + delete mode 100644 app/src/main/kotlin/com/wabadaba/dziennik/api/notification/LibrusGCMRegistrationManager.kt + delete mode 100644 app/src/main/kotlin/com/wabadaba/dziennik/api/notification/LibrusGcmListenerService.kt + +diff --git a/app/build.gradle b/app/build.gradle +index 08cc241..e980301 100644 +--- a/app/build.gradle ++++ b/app/build.gradle +@@ -1,4 +1,3 @@ +-apply plugin: 'com.google.gms.google-services' + apply plugin: 'com.android.application' + apply plugin: 'kotlin-android' + apply plugin: 'kotlin-android-extensions' +@@ -13,7 +12,7 @@ android { + minSdkVersion 21 + targetSdkVersion 26 + versionCode 9 +- versionName "0.5.0" ++ versionName "0.5.0-fdroid" + flavorDimensions "versionCode" + testInstrumentationRunner 'com.github.tmurakami.dexopener.DexOpenerAndroidJUnitRunner' + multiDexEnabled true +@@ -75,9 +74,6 @@ dependencies { + implementation "com.android.support:design:$versions.supportLibrary" + implementation "com.android.support.constraint:constraint-layout:$versions.constraintLayout" + +- // Play services +- implementation "com.google.android.gms:play-services-gcm:$versions.play_services" +- + // Crash reporting + implementation "com.bugsnag:bugsnag-android:$versions.bugsnag" + +diff --git a/app/src/main/kotlin/com/wabadaba/dziennik/MainApplication.kt b/app/src/main/kotlin/com/wabadaba/dziennik/MainApplication.kt +index 9b85cc9..7f51e4e 100644 +--- a/app/src/main/kotlin/com/wabadaba/dziennik/MainApplication.kt ++++ b/app/src/main/kotlin/com/wabadaba/dziennik/MainApplication.kt +@@ -3,7 +3,6 @@ package com.wabadaba.dziennik + import android.support.multidex.MultiDexApplication + import com.bugsnag.android.Bugsnag + import com.wabadaba.dziennik.api.UserRepository +-import com.wabadaba.dziennik.api.notification.LibrusGCMRegistrationManager + import com.wabadaba.dziennik.di.ApplicationModule + import com.wabadaba.dziennik.di.DaggerMainComponent + import com.wabadaba.dziennik.di.MainComponent +@@ -14,9 +13,6 @@ open class MainApplication : MultiDexApplication() { + lateinit var mainComponent: MainComponent + } + +- @Inject +- lateinit var gcmRegistrationManager: LibrusGCMRegistrationManager +- + @Inject + lateinit var userRepository: UserRepository + +@@ -26,7 +22,7 @@ open class MainApplication : MultiDexApplication() { + mainComponent = createMainComponent() + mainComponent.inject(this) + userRepository.currentUser +- .subscribe(gcmRegistrationManager::register) ++ //.subscribe(gcmRegistrationManager::register) + } + + private fun createMainComponent() = DaggerMainComponent.builder() +diff --git a/app/src/main/kotlin/com/wabadaba/dziennik/api/notification/LibrusGCMRegistrationManager.kt b/app/src/main/kotlin/com/wabadaba/dziennik/api/notification/LibrusGCMRegistrationManager.kt +deleted file mode 100644 +index a911c8f..0000000 +--- a/app/src/main/kotlin/com/wabadaba/dziennik/api/notification/LibrusGCMRegistrationManager.kt ++++ /dev/null +@@ -1,57 +0,0 @@ +-package com.wabadaba.dziennik.api.notification +- +-import android.content.Context +-import android.preference.PreferenceManager +-import com.bugsnag.android.Bugsnag +-import com.google.android.gms.gcm.GoogleCloudMessaging +-import com.google.android.gms.iid.InstanceID +-import com.wabadaba.dziennik.BuildConfig +-import com.wabadaba.dziennik.api.FullUser +-import com.wabadaba.dziennik.api.RefreshableAPIClient +-import io.reactivex.Single +-import io.reactivex.schedulers.Schedulers +- +-class LibrusGCMRegistrationManager(val context: Context, private val apiClient: RefreshableAPIClient) { +- +- private val senderId = BuildConfig.SENDER_ID +- +- private val pref_key = "gcm_registered_users" +- +- fun register(currentUser: FullUser) { +- if (!isRegistered(currentUser)) { +- getRegistrationToken() +- .flatMap { regToken -> apiClient.pushDevices(regToken) } +- .doOnSuccess { this.setRegistered(currentUser) } +- .subscribeOn(Schedulers.io()) +- .subscribe( +- { +- println("GCM registration successful") +- }, +- { e -> +- println("GCM registration failed") +- Bugsnag.notify(e) +- }) +- } +- } +- +- +- private fun isRegistered(currentUser: FullUser): Boolean { +- val prefs = PreferenceManager.getDefaultSharedPreferences(context) +- return prefs.getStringSet(pref_key, emptySet()) +- .contains(currentUser.login) +- } +- +- private fun setRegistered(currentUser: FullUser) { +- val prefs = PreferenceManager.getDefaultSharedPreferences(context) +- val registered = prefs.getStringSet(pref_key, emptySet()) +- prefs.edit().putStringSet(pref_key, registered.plus(currentUser.login)) +- .apply() +- } +- +- private fun getRegistrationToken() = Single.fromCallable { +- val instanceID = InstanceID.getInstance(context) +- instanceID.getToken(senderId, +- GoogleCloudMessaging.INSTANCE_ID_SCOPE, null) +- } +-} +- +diff --git a/app/src/main/kotlin/com/wabadaba/dziennik/api/notification/LibrusGcmListenerService.kt b/app/src/main/kotlin/com/wabadaba/dziennik/api/notification/LibrusGcmListenerService.kt +deleted file mode 100644 +index 66a51a8..0000000 +--- a/app/src/main/kotlin/com/wabadaba/dziennik/api/notification/LibrusGcmListenerService.kt ++++ /dev/null +@@ -1,57 +0,0 @@ +-package com.wabadaba.dziennik.api.notification +- +-import android.app.PendingIntent +-import android.content.Intent +-import android.os.Bundle +-import android.preference.PreferenceManager +-import android.support.v4.app.NotificationCompat +-import com.google.android.gms.gcm.GcmListenerService +-import com.wabadaba.dziennik.MainApplication +-import com.wabadaba.dziennik.R +-import com.wabadaba.dziennik.ui.MainActivity +-import javax.inject.Inject +- +- +-@Suppress("DEPRECATION") +-class LibrusGcmListenerService : GcmListenerService() { +- @Inject lateinit var notificationHelper : NotificationSender +- +- override fun onMessageReceived(p0: String, data: Bundle) { +- MainApplication.mainComponent.inject(this) +- +- if (checkNotificationsEnabled()) { +- val message = data.getString("message") +- val user = data.getString("userId") +- +- val intent = Intent(this, MainActivity::class.java) +- val pendingIntent = PendingIntent.getActivity( +- this, +- 0, +- intent, +- PendingIntent.FLAG_UPDATE_CURRENT +- ) +- +- val notification = NotificationCompat.Builder(this, NotificationSender.NOTIFICATION_CHANNEL_ID) +- .setSmallIcon(R.drawable.ic_school_black_24dp) +- .setContentTitle(message) +- .setContentText(user) +- .setContentIntent(pendingIntent) +- .setAutoCancel(true) +- .setPriority(NotificationCompat.PRIORITY_HIGH) +- .build() +- +- notificationHelper.updateNotification(System.currentTimeMillis().toInt(), notification) +- } +- } +- +- private fun checkNotificationsEnabled() : Boolean { +- val prefs = PreferenceManager.getDefaultSharedPreferences(this) +- if (!prefs.getBoolean("enable_notifications", true)) { +- println("received message but notifications are disabled") +- return true +- } +- +- println("received message, sending notification...") +- return false +- } +-} +\ No newline at end of file +diff --git a/app/src/main/kotlin/com/wabadaba/dziennik/di/ApplicationModule.kt b/app/src/main/kotlin/com/wabadaba/dziennik/di/ApplicationModule.kt +index e1296f3..d4dc28e 100644 +--- a/app/src/main/kotlin/com/wabadaba/dziennik/di/ApplicationModule.kt ++++ b/app/src/main/kotlin/com/wabadaba/dziennik/di/ApplicationModule.kt +@@ -6,7 +6,6 @@ import android.content.Context + import android.content.SharedPreferences + import android.preference.PreferenceManager + import com.wabadaba.dziennik.api.* +-import com.wabadaba.dziennik.api.notification.LibrusGCMRegistrationManager + import com.wabadaba.dziennik.api.notification.NotificationSender + import com.wabadaba.dziennik.db.DatabaseManager + import com.wabadaba.dziennik.ui.FragmentRepository +@@ -61,11 +60,6 @@ class ApplicationModule(private val mainApplication: Application) { + @Singleton + fun provideAPIClientFactory(): APIClientFactory = APIClientFactory() + +- @Provides +- @Singleton +- fun provideGCMRegistrationManager(apiClient: RefreshableAPIClient, context: Context): LibrusGCMRegistrationManager +- = LibrusGCMRegistrationManager(context, apiClient) +- + @Provides + @Singleton + fun provideGPServicesChecker(): GPServicesChecker = GPServicesChecker() +diff --git a/app/src/main/kotlin/com/wabadaba/dziennik/di/MainComponent.kt b/app/src/main/kotlin/com/wabadaba/dziennik/di/MainComponent.kt +index 1fc5d01..801454e 100644 +--- a/app/src/main/kotlin/com/wabadaba/dziennik/di/MainComponent.kt ++++ b/app/src/main/kotlin/com/wabadaba/dziennik/di/MainComponent.kt +@@ -1,7 +1,6 @@ + package com.wabadaba.dziennik.di + + import com.wabadaba.dziennik.MainApplication +-import com.wabadaba.dziennik.api.notification.LibrusGcmListenerService + import com.wabadaba.dziennik.ui.MainActivity + import com.wabadaba.dziennik.ui.SettingsFragment + import com.wabadaba.dziennik.ui.announcements.AnnouncementsFragment +@@ -25,5 +24,4 @@ interface MainComponent { + fun inject(settingsFragment: SettingsFragment) + fun inject(eventsFragment: EventsFragment) + fun inject(announcementsFragment: AnnouncementsFragment) +- fun inject(librusGcmListenerService: LibrusGcmListenerService) + } +\ No newline at end of file +diff --git a/app/src/main/kotlin/com/wabadaba/dziennik/ui/GPServicesChecker.kt b/app/src/main/kotlin/com/wabadaba/dziennik/ui/GPServicesChecker.kt +index e0f8205..5ec1581 100644 +--- a/app/src/main/kotlin/com/wabadaba/dziennik/ui/GPServicesChecker.kt ++++ b/app/src/main/kotlin/com/wabadaba/dziennik/ui/GPServicesChecker.kt +@@ -1,18 +1,7 @@ + package com.wabadaba.dziennik.ui + +-import com.google.android.gms.common.ConnectionResult +-import com.google.android.gms.common.GoogleApiAvailability +- + class GPServicesChecker { + fun check(activity: MainActivity): Boolean { +- val googleApiAvailability = GoogleApiAvailability.getInstance() +- val status = googleApiAvailability.isGooglePlayServicesAvailable(activity) +- if (status != ConnectionResult.SUCCESS) { +- if (googleApiAvailability.isUserResolvableError(status)) { +- googleApiAvailability.getErrorDialog(activity, status, 2404).show() +- } +- return false +- } + return true + } + } +\ No newline at end of file +diff --git a/build.gradle b/build.gradle +index 2df80d7..401d4c7 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -8,9 +8,8 @@ buildscript { + jcenter() + } + dependencies { +- classpath "com.android.tools.build:gradle:$versions.androidPlugin" ++ classpath 'com.android.tools.build:gradle:3.0.1' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$versions.kotlin" +- classpath "com.google.gms:google-services:$versions.google_services" + + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files +-- +2.15.1 +