Checkbox for home icon creation in create/edit dapp dialog
This commit is contained in:
parent
67e511a9c5
commit
7e71c318a2
|
@ -20,6 +20,8 @@
|
|||
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
|
||||
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
|
||||
|
||||
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
|
||||
|
||||
<application
|
||||
android:name=".app.SyngApplication"
|
||||
android:allowBackup="true"
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package io.syng.activity;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.res.Configuration;
|
||||
import android.net.Uri;
|
||||
|
@ -23,6 +22,7 @@ import android.view.LayoutInflater;
|
|||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.EditText;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageView;
|
||||
|
@ -30,7 +30,6 @@ import android.widget.RadioButton;
|
|||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.afollestad.materialdialogs.AlertDialogWrapper;
|
||||
import com.afollestad.materialdialogs.MaterialDialog;
|
||||
import com.bumptech.glide.Glide;
|
||||
|
||||
|
@ -152,22 +151,7 @@ public abstract class BaseActivity extends AppCompatActivity implements
|
|||
Glide.with(this).load(R.drawable.two).into(header);
|
||||
|
||||
super.setContentView(mDrawerLayout);
|
||||
showWarningDialogIfNeed();
|
||||
}
|
||||
|
||||
private void showWarningDialogIfNeed() {
|
||||
if (PrefsUtil.isFirstLaunch()) {
|
||||
PrefsUtil.setFirstLaunch(false);
|
||||
new AlertDialogWrapper.Builder(this)
|
||||
.setTitle(R.string.warning_title)
|
||||
.setMessage(R.string.warning_message)
|
||||
.setNegativeButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
dialog.dismiss();
|
||||
}
|
||||
}).show();
|
||||
}
|
||||
GeneralUtil.showWarningDialogIfNeed(this);
|
||||
}
|
||||
|
||||
|
||||
|
@ -202,7 +186,6 @@ public abstract class BaseActivity extends AppCompatActivity implements
|
|||
if (SyngApplication.sCurrentProfile != null) {
|
||||
mDApps = SyngApplication.sCurrentProfile.getDapps();
|
||||
}
|
||||
|
||||
updateAppList(mSearchTextView.getText().toString());
|
||||
}
|
||||
|
||||
|
@ -211,6 +194,10 @@ public abstract class BaseActivity extends AppCompatActivity implements
|
|||
mHandler.postDelayed(mRunnable, delayMills);
|
||||
}
|
||||
|
||||
protected void closeDrawer() {
|
||||
mHandler.postDelayed(mRunnable, DRAWER_CLOSE_DELAY_SHORT);
|
||||
}
|
||||
|
||||
protected void changeProfile(Profile profile) {
|
||||
|
||||
updateCurrentProfileName(profile.getName());
|
||||
|
@ -334,7 +321,6 @@ public abstract class BaseActivity extends AppCompatActivity implements
|
|||
mHandler.removeCallbacksAndMessages(null);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
switch (v.getId()) {
|
||||
|
@ -409,7 +395,7 @@ public abstract class BaseActivity extends AppCompatActivity implements
|
|||
@Override
|
||||
public void onDAppItemClick(Dapp dapp) {
|
||||
onDAppClick(dapp);
|
||||
closeDrawer(DRAWER_CLOSE_DELAY_SHORT);
|
||||
closeDrawer();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -493,13 +479,19 @@ public abstract class BaseActivity extends AppCompatActivity implements
|
|||
public void onPositive(MaterialDialog dialog) {
|
||||
EditText dappNameEdit = (EditText) dialog.findViewById(R.id.dapp_name);
|
||||
EditText dappUrlEdit = (EditText) dialog.findViewById(R.id.dapp_url);
|
||||
CheckBox checkBox = (CheckBox) dialog.findViewById(R.id.dapp_home_icon);
|
||||
boolean homeScreenIcon = checkBox.isChecked();
|
||||
String url = dappUrlEdit.getText().toString();
|
||||
String name = dappNameEdit.getText().toString();
|
||||
if (Patterns.WEB_URL.matcher(url.replace("dapp://", "http://")).matches()) {
|
||||
dapp.setName(dappNameEdit.getText().toString());
|
||||
dapp.setName(name);
|
||||
dapp.setUrl(url);
|
||||
System.out.println(url);
|
||||
SyngApplication.updateDapp(dapp);
|
||||
initDApps();
|
||||
if (homeScreenIcon) {
|
||||
GeneralUtil.createHomeScreenIcon(BaseActivity.this, name, url);
|
||||
}
|
||||
dialog.hide();
|
||||
} else {
|
||||
Toast.makeText(BaseActivity.this, R.string.invalid_url, Toast.LENGTH_SHORT).show();
|
||||
|
@ -548,6 +540,7 @@ public abstract class BaseActivity extends AppCompatActivity implements
|
|||
dialog.getInputEditText().setText(profile.getName());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onDAppAdd() {
|
||||
new MaterialDialog.Builder(this)
|
||||
|
@ -561,12 +554,18 @@ public abstract class BaseActivity extends AppCompatActivity implements
|
|||
public void onPositive(MaterialDialog dialog) {
|
||||
EditText dappNameEdit = (EditText) dialog.findViewById(R.id.dapp_name);
|
||||
EditText dappUrlEdit = (EditText) dialog.findViewById(R.id.dapp_url);
|
||||
CheckBox checkBox = (CheckBox) dialog.findViewById(R.id.dapp_home_icon);
|
||||
boolean homeScreenIcon = checkBox.isChecked();
|
||||
String url = dappUrlEdit.getText().toString();
|
||||
String name = dappNameEdit.getText().toString();
|
||||
if (Patterns.WEB_URL.matcher(url.replace("dapp://", "http://")).matches()) {
|
||||
Dapp dapp = new Dapp(dappNameEdit.getText().toString());
|
||||
dapp.setUrl(dappUrlEdit.getText().toString());
|
||||
Dapp dapp = new Dapp(name);
|
||||
dapp.setUrl(url);
|
||||
SyngApplication.addDapp(dapp);
|
||||
initDApps();
|
||||
if (homeScreenIcon) {
|
||||
GeneralUtil.createHomeScreenIcon(BaseActivity.this, name, url);
|
||||
}
|
||||
dialog.hide();
|
||||
} else {
|
||||
Toast.makeText(BaseActivity.this, R.string.invalid_url, Toast.LENGTH_SHORT).show();
|
||||
|
@ -590,7 +589,7 @@ public abstract class BaseActivity extends AppCompatActivity implements
|
|||
intent.setData(Uri.parse(url));
|
||||
if (intent.resolveActivity(getPackageManager()) != null) {
|
||||
startActivity(intent);
|
||||
closeDrawer(DRAWER_CLOSE_DELAY_SHORT);
|
||||
closeDrawer();
|
||||
mSearchTextView.getText().clear();
|
||||
}
|
||||
}
|
||||
|
@ -599,4 +598,5 @@ public abstract class BaseActivity extends AppCompatActivity implements
|
|||
public void onNewProfile() {
|
||||
showAccountCreateDialog();
|
||||
}
|
||||
|
||||
}
|
|
@ -33,6 +33,7 @@ public class MainActivity extends BaseActivity {
|
|||
args.putString("url", intent.getDataString());
|
||||
wvF.setArguments(args);
|
||||
replaceFragment(wvF);
|
||||
closeDrawer();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -2,16 +2,53 @@ package io.syng.util;
|
|||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.view.View;
|
||||
import android.view.inputmethod.InputMethodManager;
|
||||
|
||||
import com.afollestad.materialdialogs.AlertDialogWrapper;
|
||||
|
||||
import io.syng.R;
|
||||
|
||||
public final class GeneralUtil {
|
||||
|
||||
public static void hideKeyBoard(View view, Context context) {
|
||||
if (view == null)
|
||||
return;
|
||||
InputMethodManager imm = (InputMethodManager)
|
||||
context.getSystemService(Activity.INPUT_METHOD_SERVICE);
|
||||
context.getApplicationContext().getSystemService(Activity.INPUT_METHOD_SERVICE);
|
||||
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
|
||||
}
|
||||
|
||||
public static void createHomeScreenIcon(final Context context, final String name, final String url) {
|
||||
Intent shortcutIntent = new Intent(Intent.ACTION_VIEW);
|
||||
shortcutIntent.setData(Uri.parse(url));
|
||||
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||
|
||||
Intent addIntent = new Intent();
|
||||
addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
|
||||
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, name);
|
||||
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
|
||||
Intent.ShortcutIconResource.fromContext(context.getApplicationContext(), R.mipmap.ic_launcher));
|
||||
addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
|
||||
context.sendBroadcast(addIntent);
|
||||
}
|
||||
|
||||
public static void showWarningDialogIfNeed(final Context context) {
|
||||
if (PrefsUtil.isFirstLaunch()) {
|
||||
PrefsUtil.setFirstLaunch(false);
|
||||
new AlertDialogWrapper.Builder(context.getApplicationContext())
|
||||
.setTitle(R.string.warning_title)
|
||||
.setMessage(R.string.warning_message)
|
||||
.setNegativeButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
dialog.dismiss();
|
||||
}
|
||||
}).show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
<string name="error_reading_file">Error reading specified file.</string>
|
||||
<string name="invalid_wallet_password">Invalid wallet or password.</string>
|
||||
|
||||
<string name="invalid_url">Invalid url.</string>
|
||||
<string name="invalid_url">Invalid url</string>
|
||||
|
||||
<string name="request_profile_password">Profile Password</string>
|
||||
<string name="warning.message">This is PRE-ALPHA software and most likely contains numerous bugs. The layout, design, and functionality may change frequently. This also lacks numerous features that will be included in later versions. Using this software you agree that you hold yourself personally accountable for interacting with this software.</string>
|
||||
|
|
Loading…
Reference in New Issue