From c0f69246ccc856439b99a8ce3ca5156292c35439 Mon Sep 17 00:00:00 2001 From: Sergey Eremin Date: Fri, 25 Aug 2017 03:37:10 +0300 Subject: [PATCH] Issue #227 device definition is now opened on long press on the device list item --- app/src/main/AndroidManifest.xml | 2 + .../yalpstore/DeviceInfoActivity.java | 37 +++++++++++++++++++ .../yalpstore/fragment/preference/Device.java | 12 ++++++ .../res/layout/deviceinfo_activity_layout.xml | 17 +++++++++ 4 files changed, 68 insertions(+) create mode 100644 app/src/main/java/com/github/yeriomin/yalpstore/DeviceInfoActivity.java create mode 100644 app/src/main/res/layout/deviceinfo_activity_layout.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a415ffcf5..3de83b7d6 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -116,6 +116,8 @@ + + diff --git a/app/src/main/java/com/github/yeriomin/yalpstore/DeviceInfoActivity.java b/app/src/main/java/com/github/yeriomin/yalpstore/DeviceInfoActivity.java new file mode 100644 index 000000000..95452b51f --- /dev/null +++ b/app/src/main/java/com/github/yeriomin/yalpstore/DeviceInfoActivity.java @@ -0,0 +1,37 @@ +package com.github.yeriomin.yalpstore; + +import android.content.Intent; +import android.os.Bundle; +import android.text.TextUtils; +import android.util.Log; +import android.widget.TextView; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; + +public class DeviceInfoActivity extends YalpStoreActivity { + + public static final String INTENT_DEVICE_NAME = "INTENT_DEVICE_NAME"; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.deviceinfo_activity_layout); + onNewIntent(getIntent()); + } + + @Override + protected void onNewIntent(Intent intent) { + super.onNewIntent(intent); + String deviceName = intent.getStringExtra(INTENT_DEVICE_NAME); + if (TextUtils.isEmpty(deviceName)) { + Log.e(getClass().getName(), "No device name given"); + finish(); + return; + } + ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); + PrintStream printStream = new PrintStream(byteArrayOutputStream); + new SpoofDeviceManager(this).getProperties(deviceName).list(printStream); + ((TextView) findViewById(R.id.device_info)).setText(new String(byteArrayOutputStream.toByteArray())); + } +} diff --git a/app/src/main/java/com/github/yeriomin/yalpstore/fragment/preference/Device.java b/app/src/main/java/com/github/yeriomin/yalpstore/fragment/preference/Device.java index 4e5d0203f..b93b900c0 100644 --- a/app/src/main/java/com/github/yeriomin/yalpstore/fragment/preference/Device.java +++ b/app/src/main/java/com/github/yeriomin/yalpstore/fragment/preference/Device.java @@ -7,9 +7,12 @@ import android.content.Intent; import android.preference.Preference; import android.preference.PreferenceManager; import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; import com.github.yeriomin.playstoreapi.PropertiesDeviceInfoProvider; import com.github.yeriomin.yalpstore.ContextUtil; +import com.github.yeriomin.yalpstore.DeviceInfoActivity; import com.github.yeriomin.yalpstore.OnListPreferenceChangeListener; import com.github.yeriomin.yalpstore.Paths; import com.github.yeriomin.yalpstore.PlayStoreApiAuthenticator; @@ -37,6 +40,15 @@ public class Device extends List { @Override public boolean onPreferenceClick(Preference preference) { ContextUtil.toast(activity.getApplicationContext(), R.string.pref_device_to_pretend_to_be_notice, Paths.getYalpPath().getName()); + ((AlertDialog) listPreference.getDialog()).getListView().setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { + @Override + public boolean onItemLongClick(AdapterView parent, View v, int position, long id) { + Intent i = new Intent(activity, DeviceInfoActivity.class); + i.putExtra(DeviceInfoActivity.INTENT_DEVICE_NAME, (String) keyValueMap.keySet().toArray()[position]); + activity.startActivity(i); + return false; + } + }); return false; } }); diff --git a/app/src/main/res/layout/deviceinfo_activity_layout.xml b/app/src/main/res/layout/deviceinfo_activity_layout.xml new file mode 100644 index 000000000..024633391 --- /dev/null +++ b/app/src/main/res/layout/deviceinfo_activity_layout.xml @@ -0,0 +1,17 @@ + + + + + + + + +