diff --git a/android-client-common/build.gradle b/android-client-common/build.gradle index d0c4761..73f45a9 100644 --- a/android-client-common/build.gradle +++ b/android-client-common/build.gradle @@ -25,9 +25,6 @@ dependencies { implementation "com.android.support:support-fragment:$rootProject.ext.supportLibraryVersion" api "android.arch.persistence.room:runtime:$rootProject.ext.roomVersion" annotationProcessor "android.arch.persistence.room:compiler:$rootProject.ext.roomVersion" - api ("com.google.android.gms:play-services-wearable:$rootProject.ext.googlePlayServicesVersion") { - exclude module: 'support-v4' - } } android { diff --git a/android-client-common/src/main/java/com/google/android/apps/muzei/wearable/ArtworkTransfer.java b/android-client-common/src/main/java/com/google/android/apps/muzei/wearable/ArtworkTransfer.java deleted file mode 100644 index ec281b1..0000000 --- a/android-client-common/src/main/java/com/google/android/apps/muzei/wearable/ArtworkTransfer.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright 2017 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.android.apps.muzei.wearable; - -import android.net.Uri; -import android.os.Bundle; -import android.text.TextUtils; - -import com.google.android.apps.muzei.room.Artwork; -import com.google.android.gms.wearable.DataMap; - -/** - * Helper class for transferring {@link Artwork} over to Wearable devices - */ -public class ArtworkTransfer { - private static final String KEY_IMAGE_URI = "imageUri"; - private static final String KEY_TITLE = "title"; - private static final String KEY_BYLINE = "byline"; - private static final String KEY_ATTRIBUTION = "attribution"; - private static final String KEY_TOKEN = "token"; - - /** - * Serializes this artwork object to a {@link DataMap} representation. - * - * @return a serialized version of the artwork. - * @see #fromDataMap - */ - public static DataMap toDataMap(Artwork artwork) { - Bundle bundle = new Bundle(); - bundle.putString(KEY_IMAGE_URI, (artwork.imageUri != null) ? artwork.imageUri.toString() : null); - bundle.putString(KEY_TITLE, artwork.title); - bundle.putString(KEY_BYLINE, artwork.byline); - bundle.putString(KEY_ATTRIBUTION, artwork.attribution); - bundle.putString(KEY_TOKEN, artwork.token); - return DataMap.fromBundle(bundle); - } - - /** - * Deserializes an artwork object from a {@link DataMap}. - * - * @param dataMap DataMap generated by {@link #toDataMap} to deserialize. - * @return the artwork from the given {@link DataMap} - */ - public static Artwork fromDataMap(DataMap dataMap) { - Bundle bundle = dataMap.toBundle(); - Artwork artwork = new Artwork(); - String imageUri = bundle.getString(KEY_IMAGE_URI); - if (!TextUtils.isEmpty(imageUri)) { - artwork.imageUri = Uri.parse(imageUri); - } - artwork.title = bundle.getString(KEY_TITLE); - artwork.byline = bundle.getString(KEY_BYLINE); - artwork.attribution = bundle.getString(KEY_ATTRIBUTION); - artwork.token = bundle.getString(KEY_TOKEN); - return artwork; - } - - private ArtworkTransfer() { - } -} diff --git a/build.gradle b/build.gradle index 006c6bc..928ed08 100644 --- a/build.gradle +++ b/build.gradle @@ -18,15 +18,9 @@ buildscript { repositories { jcenter() google() - maven { - url 'https://maven.fabric.io/public' - } } dependencies { classpath 'com.android.tools.build:gradle:3.0.1' - classpath 'com.google.gms:google-services:3.1.0' - classpath 'io.fabric.tools:gradle:1.24.4' - classpath 'com.google.firebase:firebase-plugins:1.1.1' } } diff --git a/main/build.gradle b/main/build.gradle index 60a2cbd..551dc78 100644 --- a/main/build.gradle +++ b/main/build.gradle @@ -15,8 +15,6 @@ */ apply plugin: 'com.android.application' -apply plugin: 'com.google.firebase.firebase-perf' -apply plugin: 'io.fabric' project.archivesBaseName = "muzei" @@ -89,10 +87,6 @@ android { dependencies { implementation "com.squareup.okhttp3:okhttp:$rootProject.ext.okhttpVersion" implementation "com.squareup.picasso:picasso:$rootProject.ext.picassoVersion" - implementation "com.google.android.gms:play-services-wearable:$rootProject.ext.googlePlayServicesVersion" - implementation "com.google.firebase:firebase-core:$rootProject.ext.googlePlayServicesVersion" - implementation "com.google.firebase:firebase-perf:$rootProject.ext.googlePlayServicesVersion" - implementation "com.crashlytics.sdk.android:crashlytics:$rootProject.ext.crashlyticsVersion" implementation "com.twofortyfouram:android-plugin-api-for-locale:1.0.2" implementation "org.greenrobot:eventbus:3.0.0" implementation "com.android.support:appcompat-v7:$rootProject.ext.supportLibraryVersion" @@ -108,5 +102,3 @@ dependencies { implementation project(':source-featured-art') implementation project(':source-gallery') } - -apply plugin: 'com.google.gms.google-services' \ No newline at end of file diff --git a/main/src/main/java/com/google/android/apps/muzei/ArtDetailFragment.java b/main/src/main/java/com/google/android/apps/muzei/ArtDetailFragment.java index 638b7d3..79b12da 100644 --- a/main/src/main/java/com/google/android/apps/muzei/ArtDetailFragment.java +++ b/main/src/main/java/com/google/android/apps/muzei/ArtDetailFragment.java @@ -58,7 +58,6 @@ import com.google.android.apps.muzei.util.AnimatedMuzeiLoadingSpinnerView; import com.google.android.apps.muzei.util.PanScaleProxyView; import com.google.android.apps.muzei.util.ScrimUtil; import com.google.android.apps.muzei.widget.AppWidgetUpdateTask; -import com.google.firebase.analytics.FirebaseAnalytics; import net.nurik.roman.muzei.R; @@ -266,7 +265,6 @@ public class ArtDetailFragment extends Fragment { switch (menuItem.getItemId()) { case R.id.action_about: - FirebaseAnalytics.getInstance(context).logEvent("about_open", null); startActivity(new Intent(context, AboutActivity.class)); return true; } diff --git a/main/src/main/java/com/google/android/apps/muzei/IntroFragment.java b/main/src/main/java/com/google/android/apps/muzei/IntroFragment.java index d3fd494..0e9e16a 100644 --- a/main/src/main/java/com/google/android/apps/muzei/IntroFragment.java +++ b/main/src/main/java/com/google/android/apps/muzei/IntroFragment.java @@ -30,7 +30,6 @@ import android.view.ViewGroup; import android.widget.Toast; import com.google.android.apps.muzei.util.AnimatedMuzeiLogoFragment; -import com.google.firebase.analytics.FirebaseAnalytics; import net.nurik.roman.muzei.R; @@ -43,10 +42,6 @@ public class IntroFragment extends Fragment { @Override public void onCreate(@Nullable final Bundle savedInstanceState) { super.onCreate(savedInstanceState); - - if (savedInstanceState == null) { - FirebaseAnalytics.getInstance(getContext()).logEvent(FirebaseAnalytics.Event.TUTORIAL_BEGIN, null); - } } @Override @@ -61,7 +56,6 @@ public class IntroFragment extends Fragment { mActivateButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - FirebaseAnalytics.getInstance(getContext()).logEvent("activate", null); try { startActivity(new Intent(WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER) .putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT, diff --git a/main/src/main/java/com/google/android/apps/muzei/MainFragment.java b/main/src/main/java/com/google/android/apps/muzei/MainFragment.java index 33a3116..8529951 100644 --- a/main/src/main/java/com/google/android/apps/muzei/MainFragment.java +++ b/main/src/main/java/com/google/android/apps/muzei/MainFragment.java @@ -38,7 +38,6 @@ import android.view.ViewGroup; import com.google.android.apps.muzei.settings.EffectsFragment; import com.google.android.apps.muzei.settings.ChooseSourceFragment; import com.google.android.apps.muzei.util.ScrimUtil; -import com.google.firebase.analytics.FirebaseAnalytics; import net.nurik.roman.muzei.R; @@ -86,9 +85,6 @@ public class MainFragment extends Fragment implements FragmentManager.OnBackStac // Set up the container for the child fragments final View container = view.findViewById(R.id.container); if (savedInstanceState == null) { - FirebaseAnalytics.getInstance(getActivity()) - .setCurrentScreen(getActivity(), "ArtDetail", - ArtDetailFragment.class.getSimpleName()); getChildFragmentManager().beginTransaction() .replace(R.id.container, new ArtDetailFragment()) .commit(); @@ -106,18 +102,12 @@ public class MainFragment extends Fragment implements FragmentManager.OnBackStac } switch (item.getItemId()) { case R.id.main_art_details: - FirebaseAnalytics.getInstance(getContext()) - .setCurrentScreen(getActivity(), "ArtDetail", - ArtDetailFragment.class.getSimpleName()); getChildFragmentManager().beginTransaction() .replace(R.id.container, new ArtDetailFragment()) .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE) .commit(); return true; case R.id.main_choose_source: - FirebaseAnalytics.getInstance(getContext()) - .setCurrentScreen(getActivity(), "ChooseSource", - ChooseSourceFragment.class.getSimpleName()); getChildFragmentManager().popBackStack("main", FragmentManager.POP_BACK_STACK_INCLUSIVE); getChildFragmentManager().beginTransaction() @@ -127,9 +117,6 @@ public class MainFragment extends Fragment implements FragmentManager.OnBackStac .commit(); return true; case R.id.main_effects: - FirebaseAnalytics.getInstance(getContext()) - .setCurrentScreen(getActivity(), "Effects", - EffectsFragment.class.getSimpleName()); getChildFragmentManager().popBackStack("main", FragmentManager.POP_BACK_STACK_INCLUSIVE); getChildFragmentManager().beginTransaction() diff --git a/main/src/main/java/com/google/android/apps/muzei/MuzeiActivity.java b/main/src/main/java/com/google/android/apps/muzei/MuzeiActivity.java index 828457c..c096346 100644 --- a/main/src/main/java/com/google/android/apps/muzei/MuzeiActivity.java +++ b/main/src/main/java/com/google/android/apps/muzei/MuzeiActivity.java @@ -25,7 +25,6 @@ import android.support.v7.app.AppCompatActivity; import android.view.View; import com.google.android.apps.muzei.event.WallpaperActiveStateChangedEvent; -import com.google.firebase.analytics.FirebaseAnalytics; import net.nurik.roman.muzei.BuildConfig; import net.nurik.roman.muzei.R; @@ -42,7 +41,6 @@ public class MuzeiActivity extends AppCompatActivity protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.muzei_activity); - FirebaseAnalytics.getInstance(this).setUserProperty("device_type", BuildConfig.DEVICE_TYPE); final View mContainerView = findViewById(R.id.container); mContainerView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN @@ -70,19 +68,13 @@ public class MuzeiActivity extends AppCompatActivity final SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this); if (sp.getBoolean(TutorialFragment.PREF_SEEN_TUTORIAL, false)) { // The wallpaper is active and they've seen the tutorial - FirebaseAnalytics.getInstance(this).setCurrentScreen(this, "Main", - MainFragment.class.getSimpleName()); return new MainFragment(); } else { // They need to see the tutorial after activating Muzei for the first time - FirebaseAnalytics.getInstance(this).setCurrentScreen(this, "Tutorial", - TutorialFragment.class.getSimpleName()); return new TutorialFragment(); } } else { // Show the intro fragment to have them activate Muzei - FirebaseAnalytics.getInstance(this).setCurrentScreen(this, "Intro", - IntroFragment.class.getSimpleName()); return new IntroFragment(); } } diff --git a/main/src/main/java/com/google/android/apps/muzei/MuzeiWallpaperService.java b/main/src/main/java/com/google/android/apps/muzei/MuzeiWallpaperService.java index ac397fb..7f45812 100644 --- a/main/src/main/java/com/google/android/apps/muzei/MuzeiWallpaperService.java +++ b/main/src/main/java/com/google/android/apps/muzei/MuzeiWallpaperService.java @@ -55,7 +55,6 @@ import com.google.android.apps.muzei.shortcuts.ArtworkInfoShortcutController; import com.google.android.apps.muzei.wallpaper.LockscreenObserver; import com.google.android.apps.muzei.wallpaper.NetworkChangeObserver; import com.google.android.apps.muzei.wallpaper.WallpaperAnalytics; -import com.google.android.apps.muzei.wearable.WearableController; import com.google.android.apps.muzei.widget.WidgetUpdater; import net.rbgrn.android.glwallpaperservice.GLWallpaperService; @@ -84,7 +83,6 @@ public class MuzeiWallpaperService extends GLWallpaperService implements Lifecyc mLifecycle.addObserver(new SourceManager(this)); mLifecycle.addObserver(new NetworkChangeObserver(this)); mLifecycle.addObserver(new NotificationUpdater(this)); - mLifecycle.addObserver(new WearableController(this)); mLifecycle.addObserver(new WidgetUpdater(this)); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) { mLifecycle.addObserver(new ArtworkInfoShortcutController(this, this)); diff --git a/main/src/main/java/com/google/android/apps/muzei/PhotoSetAsTargetActivity.java b/main/src/main/java/com/google/android/apps/muzei/PhotoSetAsTargetActivity.java index 202d12b..036a277 100644 --- a/main/src/main/java/com/google/android/apps/muzei/PhotoSetAsTargetActivity.java +++ b/main/src/main/java/com/google/android/apps/muzei/PhotoSetAsTargetActivity.java @@ -31,7 +31,6 @@ import android.widget.Toast; import com.google.android.apps.muzei.gallery.ChosenPhoto; import com.google.android.apps.muzei.gallery.GalleryArtSource; import com.google.android.apps.muzei.gallery.GalleryDatabase; -import com.google.firebase.analytics.FirebaseAnalytics; import net.nurik.roman.muzei.R; @@ -64,11 +63,6 @@ public class PhotoSetAsTargetActivity extends Activity { } // If adding the artwork succeeded, select the gallery source and publish the new image - Bundle bundle = new Bundle(); - bundle.putString(FirebaseAnalytics.Param.ITEM_ID, - new ComponentName(context, GalleryArtSource.class).flattenToShortString()); - bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "sources"); - FirebaseAnalytics.getInstance(context).logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle); SourceManager.selectSource(context, new ComponentName(context, GalleryArtSource.class), new SourceManager.Callback() { @Override diff --git a/main/src/main/java/com/google/android/apps/muzei/SourceManager.java b/main/src/main/java/com/google/android/apps/muzei/SourceManager.java index edc7d75..4d48bcc 100644 --- a/main/src/main/java/com/google/android/apps/muzei/SourceManager.java +++ b/main/src/main/java/com/google/android/apps/muzei/SourceManager.java @@ -37,7 +37,6 @@ import com.google.android.apps.muzei.featuredart.FeaturedArtSource; import com.google.android.apps.muzei.room.MuzeiDatabase; import com.google.android.apps.muzei.room.Source; import com.google.android.apps.muzei.sync.TaskQueueService; -import com.google.firebase.analytics.FirebaseAnalytics; import net.nurik.roman.muzei.BuildConfig; import net.nurik.roman.muzei.R; @@ -176,15 +175,11 @@ public class SourceManager implements LifecycleObserver { if (packageName.length() > MAX_VALUE_LENGTH) { packageName = packageName.substring(packageName.length() - MAX_VALUE_LENGTH); } - FirebaseAnalytics.getInstance(context).setUserProperty(USER_PROPERTY_SELECTED_SOURCE_PACKAGE, - packageName); String className = selectedSource.flattenToShortString(); className = className.substring(className.indexOf('/')+1); if (className.length() > MAX_VALUE_LENGTH) { className = className.substring(className.length() - MAX_VALUE_LENGTH); } - FirebaseAnalytics.getInstance(context).setUserProperty(USER_PROPERTY_SELECTED_SOURCE, - className); } public static void sendAction(final Context context, final int id) { diff --git a/main/src/main/java/com/google/android/apps/muzei/TutorialFragment.java b/main/src/main/java/com/google/android/apps/muzei/TutorialFragment.java index a236497..15c827f 100644 --- a/main/src/main/java/com/google/android/apps/muzei/TutorialFragment.java +++ b/main/src/main/java/com/google/android/apps/muzei/TutorialFragment.java @@ -36,8 +36,6 @@ import android.view.animation.Interpolator; import android.view.animation.OvershootInterpolator; import android.widget.ImageView; -import com.google.firebase.analytics.FirebaseAnalytics; - import net.nurik.roman.muzei.R; public class TutorialFragment extends Fragment { @@ -59,8 +57,6 @@ public class TutorialFragment extends Fragment { new View.OnClickListener() { @Override public void onClick(View view) { - FirebaseAnalytics.getInstance(getContext()) - .logEvent(FirebaseAnalytics.Event.TUTORIAL_COMPLETE, null); final SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getContext()); sp.edit().putBoolean(PREF_SEEN_TUTORIAL, true).apply(); } diff --git a/main/src/main/java/com/google/android/apps/muzei/quicksettings/NextArtworkTileService.java b/main/src/main/java/com/google/android/apps/muzei/quicksettings/NextArtworkTileService.java index f9dbe09..8b05fd0 100644 --- a/main/src/main/java/com/google/android/apps/muzei/quicksettings/NextArtworkTileService.java +++ b/main/src/main/java/com/google/android/apps/muzei/quicksettings/NextArtworkTileService.java @@ -40,7 +40,6 @@ import com.google.android.apps.muzei.api.MuzeiArtSource; import com.google.android.apps.muzei.event.WallpaperActiveStateChangedEvent; import com.google.android.apps.muzei.room.MuzeiDatabase; import com.google.android.apps.muzei.room.Source; -import com.google.firebase.analytics.FirebaseAnalytics; import net.nurik.roman.muzei.R; @@ -73,7 +72,6 @@ public class NextArtworkTileService extends TileService implements LifecycleOwne @Override public void onTileAdded() { - FirebaseAnalytics.getInstance(this).logEvent("tile_next_artwork_added", null); } @Override @@ -141,8 +139,6 @@ public class NextArtworkTileService extends TileService implements LifecycleOwne return; } if (tile.getState() == Tile.STATE_ACTIVE) { - FirebaseAnalytics.getInstance(NextArtworkTileService.this).logEvent( - "tile_next_artwork_click", null); // Active means we send the 'Next Artwork' command SourceManager.sendAction(this, MuzeiArtSource.BUILTIN_COMMAND_ID_NEXT_ARTWORK); } else { @@ -150,8 +146,6 @@ public class NextArtworkTileService extends TileService implements LifecycleOwne unlockAndRun(new Runnable() { @Override public void run() { - FirebaseAnalytics.getInstance(NextArtworkTileService.this).logEvent( - "tile_next_artwork_activate", null); try { startActivityAndCollapse(new Intent(WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER) .putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT, @@ -180,7 +174,6 @@ public class NextArtworkTileService extends TileService implements LifecycleOwne @Override public void onTileRemoved() { - FirebaseAnalytics.getInstance(this).logEvent("tile_next_artwork_removed", null); } @Override diff --git a/main/src/main/java/com/google/android/apps/muzei/settings/ChooseSourceFragment.java b/main/src/main/java/com/google/android/apps/muzei/settings/ChooseSourceFragment.java index 6bd2dc5..07ad04a 100644 --- a/main/src/main/java/com/google/android/apps/muzei/settings/ChooseSourceFragment.java +++ b/main/src/main/java/com/google/android/apps/muzei/settings/ChooseSourceFragment.java @@ -69,7 +69,6 @@ import com.google.android.apps.muzei.notifications.NotificationSettingsDialogFra import com.google.android.apps.muzei.room.MuzeiDatabase; import com.google.android.apps.muzei.util.ObservableHorizontalScrollView; import com.google.android.apps.muzei.util.Scrollbar; -import com.google.firebase.analytics.FirebaseAnalytics; import net.nurik.roman.muzei.R; @@ -141,10 +140,6 @@ public class ChooseSourceFragment extends Fragment { public void onAttach(Context context) { super.onAttach(context); - Bundle bundle = new Bundle(); - bundle.putString(FirebaseAnalytics.Param.ITEM_CATEGORY, "sources"); - FirebaseAnalytics.getInstance(context).logEvent(FirebaseAnalytics.Event.VIEW_ITEM_LIST, bundle); - mCurrentSourceLiveData = MuzeiDatabase.getInstance(context).sourceDao().getCurrentSource(); mCurrentSourceLiveData.observe(this, new Observer() { @@ -157,7 +152,6 @@ public class ChooseSourceFragment extends Fragment { Intent intent = ((Activity) context).getIntent(); if (intent != null && intent.getCategories() != null && intent.getCategories().contains(Notification.INTENT_CATEGORY_NOTIFICATION_PREFERENCES)) { - FirebaseAnalytics.getInstance(context).logEvent("notification_preferences_open", null); NotificationSettingsDialogFragment.showSettings(this); } } @@ -175,7 +169,6 @@ public class ChooseSourceFragment extends Fragment { NotificationSettingsDialogFragment.showSettings(this); return true; case R.id.action_get_more_sources: - FirebaseAnalytics.getInstance(getContext()).logEvent("more_sources_open", null); try { Intent playStoreIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://play.google.com/store/search?q=Muzei&c=apps")) @@ -557,18 +550,9 @@ public class ChooseSourceFragment extends Fragment { } builder.show(); } else if (source.setupActivity != null) { - Bundle bundle = new Bundle(); - bundle.putString(FirebaseAnalytics.Param.ITEM_ID, source.componentName.flattenToShortString()); - bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, source.label); - bundle.putString(FirebaseAnalytics.Param.ITEM_CATEGORY, "sources"); - FirebaseAnalytics.getInstance(getContext()).logEvent(FirebaseAnalytics.Event.VIEW_ITEM, bundle); mCurrentInitialSetupSource = source.componentName; launchSourceSetup(source); } else { - Bundle bundle = new Bundle(); - bundle.putString(FirebaseAnalytics.Param.ITEM_ID, source.componentName.flattenToShortString()); - bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "sources"); - FirebaseAnalytics.getInstance(getContext()).logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle); SourceManager.selectSource(getContext(), source.componentName); } } @@ -652,10 +636,6 @@ public class ChooseSourceFragment extends Fragment { public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_EXTENSION_SETUP) { if (resultCode == Activity.RESULT_OK && mCurrentInitialSetupSource != null) { - Bundle bundle = new Bundle(); - bundle.putString(FirebaseAnalytics.Param.ITEM_ID, mCurrentInitialSetupSource.flattenToShortString()); - bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "sources"); - FirebaseAnalytics.getInstance(getContext()).logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle); SourceManager.selectSource(getContext(), mCurrentInitialSetupSource); } diff --git a/main/src/main/java/com/google/android/apps/muzei/settings/SettingsActivity.java b/main/src/main/java/com/google/android/apps/muzei/settings/SettingsActivity.java index b3b77f6..fb3eeab 100644 --- a/main/src/main/java/com/google/android/apps/muzei/settings/SettingsActivity.java +++ b/main/src/main/java/com/google/android/apps/muzei/settings/SettingsActivity.java @@ -33,7 +33,6 @@ import android.widget.TextView; import com.google.android.apps.muzei.event.WallpaperActiveStateChangedEvent; import com.google.android.apps.muzei.render.MuzeiRendererFragment; -import com.google.firebase.analytics.FirebaseAnalytics; import net.nurik.roman.muzei.R; @@ -164,9 +163,6 @@ public class SettingsActivity extends AppCompatActivity try { Fragment newFragment = fragmentClass.newInstance(); - FirebaseAnalytics.getInstance(SettingsActivity.this) - .setCurrentScreen(SettingsActivity.this, SECTION_SCREEN_NAME[position], - fragmentClass.getSimpleName()); getSupportFragmentManager().beginTransaction() .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE) .setTransitionStyle(R.style.Muzei_SimpleFadeFragmentAnimation) diff --git a/main/src/main/java/com/google/android/apps/muzei/wallpaper/WallpaperAnalytics.java b/main/src/main/java/com/google/android/apps/muzei/wallpaper/WallpaperAnalytics.java index 6cfa4f9..7491f2c 100644 --- a/main/src/main/java/com/google/android/apps/muzei/wallpaper/WallpaperAnalytics.java +++ b/main/src/main/java/com/google/android/apps/muzei/wallpaper/WallpaperAnalytics.java @@ -22,7 +22,6 @@ import android.arch.lifecycle.OnLifecycleEvent; import android.content.Context; import com.google.android.apps.muzei.event.WallpaperActiveStateChangedEvent; -import com.google.firebase.analytics.FirebaseAnalytics; import net.nurik.roman.muzei.BuildConfig; @@ -40,18 +39,15 @@ public class WallpaperAnalytics implements LifecycleObserver { @OnLifecycleEvent(Lifecycle.Event.ON_CREATE) public void registerDeviceType() { - FirebaseAnalytics.getInstance(mContext).setUserProperty("device_type", BuildConfig.DEVICE_TYPE); } @OnLifecycleEvent(Lifecycle.Event.ON_RESUME) public void triggerWallpaperCreated() { - FirebaseAnalytics.getInstance(mContext).logEvent("wallpaper_created", null); EventBus.getDefault().postSticky(new WallpaperActiveStateChangedEvent(true)); } @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE) public void triggerWallpaperDestroyed() { - FirebaseAnalytics.getInstance(mContext).logEvent("wallpaper_destroyed", null); EventBus.getDefault().postSticky(new WallpaperActiveStateChangedEvent(false)); } } diff --git a/main/src/main/java/com/google/android/apps/muzei/wearable/NotificationOpenListenerService.java b/main/src/main/java/com/google/android/apps/muzei/wearable/NotificationOpenListenerService.java deleted file mode 100644 index aa55e66..0000000 --- a/main/src/main/java/com/google/android/apps/muzei/wearable/NotificationOpenListenerService.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 2014 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.android.apps.muzei.wearable; - -import android.content.Intent; -import android.content.pm.PackageManager; - -import com.google.android.gms.wearable.MessageEvent; -import com.google.android.gms.wearable.WearableListenerService; - -public class NotificationOpenListenerService extends WearableListenerService { - @Override - public void onMessageReceived(MessageEvent messageEvent) { - // Only notification/open actions trigger this WearableListenerService - PackageManager packageManager = getPackageManager(); - Intent mainIntent = packageManager.getLaunchIntentForPackage(getPackageName()); - startActivity(mainIntent); - } -} diff --git a/main/src/main/java/com/google/android/apps/muzei/wearable/WearableController.java b/main/src/main/java/com/google/android/apps/muzei/wearable/WearableController.java deleted file mode 100644 index e113ed2..0000000 --- a/main/src/main/java/com/google/android/apps/muzei/wearable/WearableController.java +++ /dev/null @@ -1,175 +0,0 @@ -/* - * Copyright 2014 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.android.apps.muzei.wearable; - -import android.arch.lifecycle.Lifecycle; -import android.arch.lifecycle.LifecycleObserver; -import android.arch.lifecycle.OnLifecycleEvent; -import android.content.ContentResolver; -import android.content.Context; -import android.database.ContentObserver; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; -import android.graphics.Matrix; -import android.net.Uri; -import android.os.Handler; -import android.os.HandlerThread; -import android.support.media.ExifInterface; -import android.util.Log; - -import com.google.android.apps.muzei.api.MuzeiContract; -import com.google.android.apps.muzei.render.ImageUtil; -import com.google.android.apps.muzei.room.Artwork; -import com.google.android.apps.muzei.room.MuzeiDatabase; -import com.google.android.gms.common.ConnectionResult; -import com.google.android.gms.common.GoogleApiAvailability; -import com.google.android.gms.common.api.AvailabilityException; -import com.google.android.gms.tasks.Tasks; -import com.google.android.gms.wearable.Asset; -import com.google.android.gms.wearable.DataClient; -import com.google.android.gms.wearable.PutDataMapRequest; -import com.google.android.gms.wearable.Wearable; - -import java.io.ByteArrayOutputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStream; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; - -/** - * Controller for updating Android Wear devices with new wallpapers. - */ -public class WearableController implements LifecycleObserver { - private static final String TAG = "WearableController"; - - private final Context mContext; - private HandlerThread mWearableHandlerThread; - private ContentObserver mWearableContentObserver; - - public WearableController(Context context) { - mContext = context; - } - - @OnLifecycleEvent(Lifecycle.Event.ON_CREATE) - public void registerContentObserver() { - // Set up a thread to update Android Wear whenever the artwork changes - mWearableHandlerThread = new HandlerThread("MuzeiWallpaperService-Wearable"); - mWearableHandlerThread.start(); - mWearableContentObserver = new ContentObserver(new Handler(mWearableHandlerThread.getLooper())) { - @Override - public void onChange(final boolean selfChange, final Uri uri) { - updateArtwork(); - } - }; - mContext.getContentResolver().registerContentObserver(MuzeiContract.Artwork.CONTENT_URI, - true, mWearableContentObserver); - } - - @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY) - public void unregisterContentObserver() { - mContext.getContentResolver().unregisterContentObserver(mWearableContentObserver); - mWearableHandlerThread.quitSafely(); - } - - private void updateArtwork() { - if (ConnectionResult.SUCCESS != GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(mContext)) { - return; - } - DataClient dataClient = Wearable.getDataClient(mContext); - try { - Tasks.await(GoogleApiAvailability.getInstance() - .checkApiAvailability(dataClient), 5, TimeUnit.SECONDS); - } catch (ExecutionException e) { - if (e.getCause() instanceof AvailabilityException) { - ConnectionResult connectionResult = ((AvailabilityException) e.getCause()) - .getConnectionResult(dataClient); - if (connectionResult.getErrorCode() != ConnectionResult.API_UNAVAILABLE) { - Log.w(TAG, "onConnectionFailed: " + connectionResult, e.getCause()); - } - } else { - Log.w(TAG, "Unable to check for Wear API availability", e); - } - return; - } catch (InterruptedException|TimeoutException e) { - Log.w(TAG, "Unable to check for Wear API availability", e); - return; - } - ContentResolver contentResolver = mContext.getContentResolver(); - Bitmap image = null; - try { - BitmapFactory.Options options = new BitmapFactory.Options(); - options.inJustDecodeBounds = true; - BitmapFactory.decodeStream(contentResolver.openInputStream( - MuzeiContract.Artwork.CONTENT_URI), null, options); - options.inJustDecodeBounds = false; - if (options.outWidth > options.outHeight) { - options.inSampleSize = ImageUtil.calculateSampleSize(options.outHeight, 320); - } else { - options.inSampleSize = ImageUtil.calculateSampleSize(options.outWidth, 320); - } - image = BitmapFactory.decodeStream(contentResolver.openInputStream( - MuzeiContract.Artwork.CONTENT_URI), null, options); - } catch (FileNotFoundException e) { - Log.e(TAG, "Unable to read artwork to update Android Wear", e); - } - if (image != null) { - int rotation = getRotation(); - if (rotation != 0) { - // Rotate the image so that Wear always gets a right side up image - Matrix matrix = new Matrix(); - matrix.postRotate(rotation); - image = Bitmap.createBitmap(image, 0, 0, image.getWidth(), image.getHeight(), - matrix, true); - } - final ByteArrayOutputStream byteStream = new ByteArrayOutputStream(); - image.compress(Bitmap.CompressFormat.PNG, 100, byteStream); - Asset asset = Asset.createFromBytes(byteStream.toByteArray()); - PutDataMapRequest dataMapRequest = PutDataMapRequest.create("/artwork"); - Artwork artwork = MuzeiDatabase.getInstance(mContext).artworkDao().getCurrentArtworkBlocking(); - dataMapRequest.getDataMap().putDataMap("artwork", ArtworkTransfer.toDataMap(artwork)); - dataMapRequest.getDataMap().putAsset("image", asset); - try { - Tasks.await(dataClient.putDataItem(dataMapRequest.asPutDataRequest().setUrgent())); - } catch (ExecutionException|InterruptedException e) { - Log.w(TAG, "Error uploading artwork to Wear", e); - } - } - } - - private int getRotation() { - ContentResolver contentResolver = mContext.getContentResolver(); - int rotation = 0; - try (InputStream in = contentResolver.openInputStream( - MuzeiContract.Artwork.CONTENT_URI)) { - if (in == null) { - return 0; - } - ExifInterface exifInterface = new ExifInterface(in); - int orientation = exifInterface.getAttributeInt( - ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL); - switch (orientation) { - case ExifInterface.ORIENTATION_ROTATE_90: rotation = 90; break; - case ExifInterface.ORIENTATION_ROTATE_180: rotation = 180; break; - case ExifInterface.ORIENTATION_ROTATE_270: rotation = 270; break; - } - } catch (IOException|NumberFormatException|StackOverflowError ignored) { - } - return rotation; - } -}