2017-04-25 13:41:30 +00:00
|
|
|
diff --git a/build.gradle b/build.gradle
|
|
|
|
index 5bd412f..03f381f 100644
|
|
|
|
--- a/build.gradle
|
|
|
|
+++ b/build.gradle
|
|
|
|
@@ -15,14 +15,12 @@
|
|
|
|
*/
|
|
|
|
|
|
|
|
ext {
|
|
|
|
- toolsPluginVersion = "2.3.0-beta3"
|
|
|
|
- googleServicesPluginVersion = "3.0.0"
|
|
|
|
+ toolsPluginVersion = "2.3.0"
|
|
|
|
compileSdkVersion = 25
|
|
|
|
buildToolsVersion = "25.0.2"
|
|
|
|
targetSdkVersion = 25
|
|
|
|
|
|
|
|
supportLibraryVersion = "25.1.1"
|
|
|
|
- googlePlayServicesVersion = "10.0.1"
|
|
|
|
okhttpVersion = "3.5.0"
|
|
|
|
picassoVersion = "2.5.2"
|
|
|
|
}
|
|
|
|
diff --git a/main/build.gradle b/main/build.gradle
|
|
|
|
index 9378913..babcc2e 100644
|
|
|
|
--- a/main/build.gradle
|
|
|
|
+++ b/main/build.gradle
|
|
|
|
@@ -20,7 +20,6 @@ buildscript {
|
|
|
|
}
|
|
|
|
dependencies {
|
|
|
|
classpath "com.android.tools.build:gradle:$rootProject.ext.toolsPluginVersion"
|
|
|
|
- classpath "com.google.gms:google-services:$rootProject.ext.googleServicesPluginVersion"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@@ -112,10 +111,6 @@ android {
|
|
|
|
dependencies {
|
|
|
|
compile "com.squareup.okhttp3:okhttp:$rootProject.ext.okhttpVersion"
|
|
|
|
compile "com.squareup.picasso:picasso:$rootProject.ext.picassoVersion"
|
|
|
|
- compile "com.google.android.gms:play-services-wearable:$rootProject.ext.googlePlayServicesVersion"
|
|
|
|
- compile "com.google.firebase:firebase-core:$rootProject.ext.googlePlayServicesVersion"
|
|
|
|
- // Only use crash reporting in the "prod" product flavor
|
|
|
|
- prodCompile "com.google.firebase:firebase-crash:$rootProject.ext.googlePlayServicesVersion"
|
|
|
|
compile "org.greenrobot:eventbus:3.0.0"
|
|
|
|
compile "com.android.support:appcompat-v7:$rootProject.ext.supportLibraryVersion"
|
|
|
|
compile "com.android.support:recyclerview-v7:$rootProject.ext.supportLibraryVersion"
|
|
|
|
@@ -128,8 +123,4 @@ dependencies {
|
|
|
|
compile project(':android-client-common')
|
|
|
|
compile project(':source-featured-art')
|
|
|
|
compile project(':source-gallery')
|
|
|
|
- releaseWearApp project(path: ':wearable', configuration: 'prodRelease')
|
|
|
|
- publicBetaWearApp project(path: ':wearable', configuration: 'prodPublicBeta')
|
|
|
|
}
|
|
|
|
-
|
|
|
|
-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/MuzeiActivity.java b/main/src/main/java/com/google/android/apps/muzei/MuzeiActivity.java
|
|
|
|
index 27e9f20..97fc8ea 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
|
|
|
|
@@ -75,7 +75,6 @@ import com.google.android.apps.muzei.util.DrawInsetsFrameLayout;
|
|
|
|
import com.google.android.apps.muzei.util.PanScaleProxyView;
|
|
|
|
import com.google.android.apps.muzei.util.ScrimUtil;
|
|
|
|
import com.google.android.apps.muzei.util.TypefaceUtil;
|
|
|
|
-import com.google.firebase.analytics.FirebaseAnalytics;
|
|
|
|
|
|
|
|
import net.nurik.roman.muzei.BuildConfig;
|
|
|
|
import net.nurik.roman.muzei.R;
|
|
|
|
@@ -259,7 +258,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);
|
|
|
|
|
|
|
|
mContainerView = (DrawInsetsFrameLayout) findViewById(R.id.container);
|
|
|
|
|
|
|
|
@@ -322,7 +320,6 @@ public class MuzeiActivity extends AppCompatActivity {
|
|
|
|
findViewById(R.id.activate_muzei_button).setOnClickListener(new View.OnClickListener() {
|
|
|
|
@Override
|
|
|
|
public void onClick(View view) {
|
|
|
|
- FirebaseAnalytics.getInstance(MuzeiActivity.this).logEvent("activate", null);
|
|
|
|
try {
|
|
|
|
startActivity(new Intent(WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER)
|
|
|
|
.putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT,
|
|
|
|
@@ -419,7 +416,6 @@ public class MuzeiActivity extends AppCompatActivity {
|
|
|
|
|
|
|
|
// Special work
|
|
|
|
if (newUiMode == UI_MODE_INTRO) {
|
|
|
|
- FirebaseAnalytics.getInstance(this).logEvent(FirebaseAnalytics.Event.TUTORIAL_BEGIN, null);
|
|
|
|
final View activateButton = findViewById(R.id.activate_muzei_button);
|
|
|
|
activateButton.setAlpha(0);
|
|
|
|
final AnimatedMuzeiLogoFragment logoFragment = (AnimatedMuzeiLogoFragment)
|
|
|
|
@@ -516,7 +512,6 @@ public class MuzeiActivity extends AppCompatActivity {
|
|
|
|
}
|
|
|
|
|
|
|
|
if (newUiMode == UI_MODE_ART_DETAIL) {
|
|
|
|
- FirebaseAnalytics.getInstance(this).logEvent(FirebaseAnalytics.Event.TUTORIAL_COMPLETE, null);
|
|
|
|
}
|
|
|
|
|
|
|
|
mPanScaleProxyView.setVisibility(newUiMode == UI_MODE_ART_DETAIL
|
|
|
|
@@ -694,7 +689,6 @@ public class MuzeiActivity extends AppCompatActivity {
|
|
|
|
|
|
|
|
switch (menuItem.getItemId()) {
|
|
|
|
case R.id.action_settings:
|
|
|
|
- FirebaseAnalytics.getInstance(MuzeiActivity.this).logEvent("settings_open", null);
|
|
|
|
startActivity(new Intent(MuzeiActivity.this, SettingsActivity.class));
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
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 986366c..754e2fe 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
|
|
|
|
@@ -47,8 +47,6 @@ import com.google.android.apps.muzei.render.RenderController;
|
|
|
|
import com.google.android.apps.muzei.settings.Prefs;
|
|
|
|
import com.google.android.apps.muzei.shortcuts.ArtworkInfoShortcutController;
|
|
|
|
import com.google.android.apps.muzei.sync.TaskQueueService;
|
|
|
|
-import com.google.android.apps.muzei.wearable.WearableController;
|
|
|
|
-import com.google.firebase.analytics.FirebaseAnalytics;
|
|
|
|
|
|
|
|
import net.nurik.roman.muzei.BuildConfig;
|
|
|
|
import net.rbgrn.android.glwallpaperservice.GLWallpaperService;
|
|
|
|
@@ -62,8 +60,6 @@ public class MuzeiWallpaperService extends GLWallpaperService {
|
|
|
|
private NetworkChangeReceiver mNetworkChangeReceiver;
|
|
|
|
private HandlerThread mNotificationHandlerThread;
|
|
|
|
private ContentObserver mNotificationContentObserver;
|
|
|
|
- private HandlerThread mWearableHandlerThread;
|
|
|
|
- private ContentObserver mWearableContentObserver;
|
|
|
|
private HandlerThread mArtworkInfoShortcutHandlerThread;
|
|
|
|
private ContentObserver mArtworkInfoShortcutContentObserver;
|
|
|
|
|
|
|
|
@@ -91,7 +87,6 @@ public class MuzeiWallpaperService extends GLWallpaperService {
|
|
|
|
}
|
|
|
|
|
|
|
|
private void initialize() {
|
|
|
|
- FirebaseAnalytics.getInstance(this).setUserProperty("device_type", BuildConfig.DEVICE_TYPE);
|
|
|
|
SourceManager.subscribeToSelectedSource(MuzeiWallpaperService.this);
|
|
|
|
mNetworkChangeReceiver = new NetworkChangeReceiver();
|
|
|
|
IntentFilter networkChangeFilter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
|
|
|
|
@@ -116,18 +111,6 @@ public class MuzeiWallpaperService extends GLWallpaperService {
|
|
|
|
getContentResolver().registerContentObserver(MuzeiContract.Artwork.CONTENT_URI,
|
|
|
|
true, mNotificationContentObserver);
|
|
|
|
|
|
|
|
- // 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) {
|
|
|
|
- WearableController.updateArtwork(MuzeiWallpaperService.this);
|
|
|
|
- }
|
|
|
|
- };
|
|
|
|
- getContentResolver().registerContentObserver(MuzeiContract.Artwork.CONTENT_URI,
|
|
|
|
- true, mWearableContentObserver);
|
|
|
|
-
|
|
|
|
// Set up a thread to update the Artwork Info shortcut whenever the artwork changes
|
|
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) {
|
|
|
|
mArtworkInfoShortcutHandlerThread = new HandlerThread("MuzeiWallpaperService-ArtworkInfoShortcut");
|
|
|
|
@@ -154,8 +137,6 @@ public class MuzeiWallpaperService extends GLWallpaperService {
|
|
|
|
getContentResolver().unregisterContentObserver(mArtworkInfoShortcutContentObserver);
|
|
|
|
mArtworkInfoShortcutHandlerThread.quitSafely();
|
|
|
|
}
|
|
|
|
- getContentResolver().unregisterContentObserver(mWearableContentObserver);
|
|
|
|
- mWearableHandlerThread.quitSafely();
|
|
|
|
getContentResolver().unregisterContentObserver(mNotificationContentObserver);
|
|
|
|
mNotificationHandlerThread.quitSafely();
|
|
|
|
if (mNetworkChangeReceiver != null) {
|
|
|
|
@@ -273,7 +254,6 @@ public class MuzeiWallpaperService extends GLWallpaperService {
|
|
|
|
|
|
|
|
private void activateWallpaper() {
|
|
|
|
mWallpaperActivated = true;
|
|
|
|
- FirebaseAnalytics.getInstance(MuzeiWallpaperService.this).logEvent("wallpaper_created", null);
|
|
|
|
EventBus.getDefault().postSticky(new WallpaperActiveStateChangedEvent(true));
|
|
|
|
}
|
|
|
|
|
|
|
|
@@ -290,7 +270,6 @@ public class MuzeiWallpaperService extends GLWallpaperService {
|
|
|
|
public void onDestroy() {
|
|
|
|
EventBus.getDefault().unregister(this);
|
|
|
|
if (mWallpaperActivated) {
|
|
|
|
- FirebaseAnalytics.getInstance(MuzeiWallpaperService.this).logEvent("wallpaper_destroyed", null);
|
|
|
|
EventBus.getDefault().postSticky(new WallpaperActiveStateChangedEvent(false));
|
|
|
|
} else if (!isPreview()) {
|
|
|
|
unregisterReceiver(mEngineUnlockReceiver);
|
|
|
|
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 dbc9221..b07df7b 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
|
|
|
|
@@ -25,7 +25,6 @@ import android.os.Bundle;
|
|
|
|
|
|
|
|
import com.google.android.apps.muzei.gallery.GalleryArtSource;
|
|
|
|
import com.google.android.apps.muzei.gallery.GalleryContract;
|
|
|
|
-import com.google.firebase.analytics.FirebaseAnalytics;
|
|
|
|
|
|
|
|
public class PhotoSetAsTargetActivity extends Activity {
|
|
|
|
@Override
|
|
|
|
@@ -39,11 +38,6 @@ public class PhotoSetAsTargetActivity extends Activity {
|
|
|
|
Uri photoUri = getIntent().getData();
|
|
|
|
|
|
|
|
// Select the gallery source
|
|
|
|
- Bundle bundle = new Bundle();
|
|
|
|
- bundle.putString(FirebaseAnalytics.Param.ITEM_ID,
|
|
|
|
- new ComponentName(this, GalleryArtSource.class).flattenToShortString());
|
|
|
|
- bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "sources");
|
|
|
|
- FirebaseAnalytics.getInstance(this).logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle);
|
|
|
|
SourceManager.selectSource(this, new ComponentName(this, GalleryArtSource.class));
|
|
|
|
|
|
|
|
// Add and publish the chosen photo
|
|
|
|
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 029537a..178e46e 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
|
|
|
|
@@ -33,7 +33,6 @@ import com.google.android.apps.muzei.api.MuzeiContract;
|
|
|
|
import com.google.android.apps.muzei.api.UserCommand;
|
|
|
|
import com.google.android.apps.muzei.featuredart.FeaturedArtSource;
|
|
|
|
import com.google.android.apps.muzei.sync.TaskQueueService;
|
|
|
|
-import com.google.firebase.analytics.FirebaseAnalytics;
|
|
|
|
|
|
|
|
import net.nurik.roman.muzei.BuildConfig;
|
|
|
|
|
|
|
|
@@ -117,7 +116,6 @@ public class SourceManager {
|
|
|
|
try {
|
|
|
|
context.getContentResolver().applyBatch(MuzeiContract.AUTHORITY, operations);
|
|
|
|
sharedPrefs.edit().remove(PREF_SELECTED_SOURCE).remove(PREF_SOURCE_STATES).apply();
|
|
|
|
- sendSelectedSourceAnalytics(context, selectedSource);
|
|
|
|
} catch (RemoteException | OperationApplicationException e) {
|
|
|
|
Log.e(TAG, "Error writing sources to ContentProvider", e);
|
|
|
|
}
|
|
|
|
@@ -163,7 +161,6 @@ public class SourceManager {
|
|
|
|
|
|
|
|
try {
|
|
|
|
context.getContentResolver().applyBatch(MuzeiContract.AUTHORITY, operations);
|
|
|
|
- sendSelectedSourceAnalytics(context, source);
|
|
|
|
} catch (RemoteException | OperationApplicationException e) {
|
|
|
|
Log.e(TAG, "Error writing sources to ContentProvider", e);
|
|
|
|
}
|
|
|
|
@@ -174,24 +171,6 @@ public class SourceManager {
|
|
|
|
context.startService(TaskQueueService.getDownloadCurrentArtworkIntent(context));
|
|
|
|
}
|
|
|
|
|
|
|
|
- private static void sendSelectedSourceAnalytics(Context context, ComponentName selectedSource) {
|
|
|
|
- // The current limit for user property values
|
|
|
|
- final int MAX_VALUE_LENGTH = 36;
|
|
|
|
- String packageName = selectedSource.getPackageName();
|
|
|
|
- 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 ComponentName getSelectedSource(Context context) {
|
|
|
|
try (Cursor data = context.getContentResolver().query(MuzeiContract.Sources.CONTENT_URI,
|
|
|
|
new String[] {MuzeiContract.Sources.COLUMN_NAME_COMPONENT_NAME},
|
|
|
|
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 7dfa7c9..132ddb2 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
|
|
|
|
@@ -35,7 +35,6 @@ import com.google.android.apps.muzei.SourceManager;
|
|
|
|
import com.google.android.apps.muzei.api.MuzeiArtSource;
|
|
|
|
import com.google.android.apps.muzei.api.MuzeiContract;
|
|
|
|
import com.google.android.apps.muzei.event.WallpaperActiveStateChangedEvent;
|
|
|
|
-import com.google.firebase.analytics.FirebaseAnalytics;
|
|
|
|
|
|
|
|
import net.nurik.roman.muzei.R;
|
|
|
|
|
|
|
|
@@ -54,7 +53,6 @@ public class NextArtworkTileService extends TileService {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onTileAdded() {
|
|
|
|
- FirebaseAnalytics.getInstance(this).logEvent("tile_next_artwork_added", null);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@@ -127,8 +125,6 @@ public class NextArtworkTileService extends TileService {
|
|
|
|
@Override
|
|
|
|
public void onClick() {
|
|
|
|
if (getQsTile().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 {
|
|
|
|
@@ -136,8 +132,6 @@ public class NextArtworkTileService extends TileService {
|
|
|
|
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,
|
|
|
|
@@ -166,6 +160,5 @@ public class NextArtworkTileService extends TileService {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onTileRemoved() {
|
|
|
|
- FirebaseAnalytics.getInstance(this).logEvent("tile_next_artwork_removed", null);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
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 f24deb8..cca86d4 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
|
|
|
|
@@ -44,7 +44,6 @@ import android.widget.Toast;
|
|
|
|
import com.google.android.apps.muzei.event.WallpaperActiveStateChangedEvent;
|
|
|
|
import com.google.android.apps.muzei.render.MuzeiRendererFragment;
|
|
|
|
import com.google.android.apps.muzei.util.DrawInsetsFrameLayout;
|
|
|
|
-import com.google.firebase.analytics.FirebaseAnalytics;
|
|
|
|
|
|
|
|
import net.nurik.roman.muzei.R;
|
|
|
|
|
|
|
|
@@ -94,7 +93,6 @@ public class SettingsActivity extends AppCompatActivity
|
|
|
|
|
|
|
|
if (getIntent() != null && getIntent().getCategories() != null &&
|
|
|
|
getIntent().getCategories().contains(Notification.INTENT_CATEGORY_NOTIFICATION_PREFERENCES)) {
|
|
|
|
- FirebaseAnalytics.getInstance(this).logEvent("notification_preferences_open", null);
|
|
|
|
mStartSection = START_SECTION_ADVANCED;
|
|
|
|
}
|
|
|
|
|
|
|
|
@@ -224,7 +222,6 @@ public class SettingsActivity extends AppCompatActivity
|
|
|
|
public boolean onMenuItemClick(MenuItem item) {
|
|
|
|
switch (item.getItemId()) {
|
|
|
|
case R.id.action_get_more_sources:
|
|
|
|
- FirebaseAnalytics.getInstance(SettingsActivity.this).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"))
|
|
|
|
@@ -239,7 +236,6 @@ public class SettingsActivity extends AppCompatActivity
|
|
|
|
return true;
|
|
|
|
|
|
|
|
case R.id.action_about:
|
|
|
|
- FirebaseAnalytics.getInstance(SettingsActivity.this).logEvent("about_open", null);
|
|
|
|
startActivity(new Intent(SettingsActivity.this, AboutActivity.class));
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
diff --git a/main/src/main/java/com/google/android/apps/muzei/settings/SettingsChooseSourceFragment.java b/main/src/main/java/com/google/android/apps/muzei/settings/SettingsChooseSourceFragment.java
|
|
|
|
index 3ad9ef0..9a1a490 100644
|
|
|
|
--- a/main/src/main/java/com/google/android/apps/muzei/settings/SettingsChooseSourceFragment.java
|
|
|
|
+++ b/main/src/main/java/com/google/android/apps/muzei/settings/SettingsChooseSourceFragment.java
|
|
|
|
@@ -60,7 +60,6 @@ import com.google.android.apps.muzei.api.MuzeiContract;
|
|
|
|
import com.google.android.apps.muzei.util.CheatSheet;
|
|
|
|
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;
|
|
|
|
|
|
|
|
@@ -132,10 +131,6 @@ public class SettingsChooseSourceFragment extends Fragment implements LoaderMana
|
|
|
|
if (!(activity instanceof Callbacks)) {
|
|
|
|
throw new ClassCastException("Activity must implement fragment callbacks.");
|
|
|
|
}
|
|
|
|
-
|
|
|
|
- Bundle bundle = new Bundle();
|
|
|
|
- bundle.putString(FirebaseAnalytics.Param.ITEM_CATEGORY, "sources");
|
|
|
|
- FirebaseAnalytics.getInstance(getActivity()).logEvent(FirebaseAnalytics.Event.VIEW_ITEM_LIST, bundle);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@@ -467,17 +462,10 @@ public class SettingsChooseSourceFragment extends Fragment implements LoaderMana
|
|
|
|
((Callbacks) getActivity()).onRequestCloseActivity();
|
|
|
|
} 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(getActivity()).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(getActivity()).logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle);
|
|
|
|
SourceManager.selectSource(getContext(), source.componentName);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@@ -558,9 +546,6 @@ public class SettingsChooseSourceFragment extends Fragment implements LoaderMana
|
|
|
|
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(getActivity()).logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle);
|
|
|
|
SourceManager.selectSource(getContext(), mCurrentInitialSetupSource);
|
|
|
|
}
|
|
|
|
|
|
|
|
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 fea6abc..0000000
|
|
|
|
--- a/main/src/main/java/com/google/android/apps/muzei/wearable/WearableController.java
|
|
|
|
+++ /dev/null
|
|
|
|
@@ -1,124 +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.ContentResolver;
|
|
|
|
-import android.content.Context;
|
|
|
|
-import android.graphics.Bitmap;
|
|
|
|
-import android.graphics.BitmapFactory;
|
|
|
|
-import android.graphics.Matrix;
|
|
|
|
-import android.support.media.ExifInterface;
|
|
|
|
-import android.util.Log;
|
|
|
|
-
|
|
|
|
-import com.google.android.apps.muzei.api.Artwork;
|
|
|
|
-import com.google.android.apps.muzei.api.MuzeiContract;
|
|
|
|
-import com.google.android.apps.muzei.render.ImageUtil;
|
|
|
|
-import com.google.android.gms.common.ConnectionResult;
|
|
|
|
-import com.google.android.gms.common.GoogleApiAvailability;
|
|
|
|
-import com.google.android.gms.common.api.GoogleApiClient;
|
|
|
|
-import com.google.android.gms.wearable.Asset;
|
|
|
|
-import com.google.android.gms.wearable.DataMap;
|
|
|
|
-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.TimeUnit;
|
|
|
|
-
|
|
|
|
-/**
|
|
|
|
- * Controller for working with the Android Wear API. Also in charge of dealing with
|
|
|
|
- * Google Play Services.
|
|
|
|
- */
|
|
|
|
-public class WearableController {
|
|
|
|
- private static final String TAG = "WearableController";
|
|
|
|
-
|
|
|
|
- public static synchronized void updateArtwork(Context context) {
|
|
|
|
- if (ConnectionResult.SUCCESS != GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(context)) {
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
- GoogleApiClient googleApiClient = new GoogleApiClient.Builder(context)
|
|
|
|
- .addApi(Wearable.API)
|
|
|
|
- .build();
|
|
|
|
- ConnectionResult connectionResult = googleApiClient.blockingConnect(5, TimeUnit.SECONDS);
|
|
|
|
- if (!connectionResult.isSuccess()) {
|
|
|
|
- if (connectionResult.getErrorCode() != ConnectionResult.API_UNAVAILABLE) {
|
|
|
|
- Log.w(TAG, "onConnectionFailed: " + connectionResult);
|
|
|
|
- }
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
- ContentResolver contentResolver = context.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(context);
|
|
|
|
- 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 = MuzeiContract.Artwork.getCurrentArtwork(context);
|
|
|
|
- dataMapRequest.getDataMap().putDataMap("artwork", DataMap.fromBundle(artwork.toBundle()));
|
|
|
|
- dataMapRequest.getDataMap().putAsset("image", asset);
|
|
|
|
- Wearable.DataApi.putDataItem(googleApiClient, dataMapRequest.asPutDataRequest().setUrgent()).await();
|
|
|
|
- }
|
|
|
|
- googleApiClient.disconnect();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- private static int getRotation(Context context) {
|
|
|
|
- ContentResolver contentResolver = context.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|StackOverflowError ignored) {
|
|
|
|
- }
|
|
|
|
- return rotation;
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
diff --git a/settings.gradle b/settings.gradle
|
2017-04-26 13:38:59 +00:00
|
|
|
index 1650621..26d06ce 100644
|
2017-04-25 13:41:30 +00:00
|
|
|
--- a/settings.gradle
|
|
|
|
+++ b/settings.gradle
|
|
|
|
@@ -1 +1 @@
|
|
|
|
-include ':api', ':android-client-common', ':source-featured-art', ':source-gallery', ':main', ':wearable', ':example-source-500px', 'example-contract-widget', 'example-watchface'
|
2017-04-26 13:38:59 +00:00
|
|
|
+include ':api', ':android-client-common', ':source-featured-art', ':source-gallery', ':main', ':example-source-500px', 'example-contract-widget'
|