Update Muzei to 2.4.0 (24016)
This commit is contained in:
parent
9a88538b74
commit
fcf128c434
|
@ -52,15 +52,22 @@ Build:2.3.1,23124
|
||||||
gradle=prod
|
gradle=prod
|
||||||
rm=wearable,example-watchface
|
rm=wearable,example-watchface
|
||||||
|
|
||||||
|
Build:2.4.0,24016
|
||||||
|
commit=v2.4.0-rc2
|
||||||
|
subdir=main
|
||||||
|
patch=2.4.0-remove-play-services.patch
|
||||||
|
gradle=yes
|
||||||
|
rm=wearable,example-watchface
|
||||||
|
|
||||||
Maintainer Notes:
|
Maintainer Notes:
|
||||||
Custom version format, so no UCM applies.
|
Custom version format, so no UCM applies.
|
||||||
|
|
||||||
Since 2.0, source code needs to be patched to get rid of Google Play Services.
|
Since 2.0, source code needs to be patched to get rid of Google Play Services.
|
||||||
The wearable and example-watchface components should be removed completely, the
|
The "wearable" and "example-watchface" components should be removed
|
||||||
rest of the code has be cleaned up from FirebaseAnalytics.
|
completely, the rest of the code has to be cleaned up from FirebaseAnalytics.
|
||||||
.
|
.
|
||||||
|
|
||||||
Auto Update Mode:None
|
Auto Update Mode:None
|
||||||
Update Check Mode:None
|
Update Check Mode:None
|
||||||
Current Version:2.3.1
|
Current Version:2.4.0
|
||||||
Current Version Code:23124
|
Current Version Code:24016
|
||||||
|
|
769
metadata/net.nurik.roman.muzei/2.4.0-remove-play-services.patch
Normal file
769
metadata/net.nurik.roman.muzei/2.4.0-remove-play-services.patch
Normal file
|
@ -0,0 +1,769 @@
|
||||||
|
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<com.google.android.apps.muzei.room.Source>() {
|
||||||
|
@@ -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;
|
||||||
|
- }
|
||||||
|
-}
|
Loading…
Reference in a new issue