mirror of
https://github.com/MGislv/NekoX.git
synced 2024-07-04 11:13:36 +00:00
Use popup in NekoSettings
This commit is contained in:
parent
67703b1717
commit
be93f69a31
|
@ -12,7 +12,6 @@ import android.widget.Toast;
|
||||||
|
|
||||||
import androidx.core.content.FileProvider;
|
import androidx.core.content.FileProvider;
|
||||||
|
|
||||||
import com.google.android.exoplayer2.util.Log;
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
|
|
||||||
import org.telegram.messenger.AndroidUtilities;
|
import org.telegram.messenger.AndroidUtilities;
|
||||||
|
@ -213,7 +212,7 @@ public class InternalUpdater {
|
||||||
|
|
||||||
NekomuraTGSelectBox sb = new NekomuraTGSelectBox(null, NekomuraConfig.update_download_soucre, sources_, null);
|
NekomuraTGSelectBox sb = new NekomuraTGSelectBox(null, NekomuraConfig.update_download_soucre, sources_, null);
|
||||||
nkmrCells.appendCell(sb); // new
|
nkmrCells.appendCell(sb); // new
|
||||||
sb.onClick(ctx);
|
sb.onClickWithDialog(ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean openApkInstall(Activity activity, File f) {
|
public static boolean openApkInstall(Activity activity, File f) {
|
||||||
|
|
|
@ -194,7 +194,7 @@ public class NekoChatSettingsActivity extends BaseFragment implements Notificati
|
||||||
if (a instanceof NekomuraTGTextCheck) {
|
if (a instanceof NekomuraTGTextCheck) {
|
||||||
((NekomuraTGTextCheck) a).onClick((TextCheckCell) view);
|
((NekomuraTGTextCheck) a).onClick((TextCheckCell) view);
|
||||||
} else if (a instanceof NekomuraTGSelectBox) {
|
} else if (a instanceof NekomuraTGSelectBox) {
|
||||||
((NekomuraTGSelectBox) a).onClick();
|
((NekomuraTGSelectBox) a).onClick(view);
|
||||||
} else if (a instanceof NekomuraTGTextInput) {
|
} else if (a instanceof NekomuraTGTextInput) {
|
||||||
((NekomuraTGTextInput) a).onClick();
|
((NekomuraTGTextInput) a).onClick();
|
||||||
} else if (a instanceof NekomuraTGTextDetail) {
|
} else if (a instanceof NekomuraTGTextDetail) {
|
||||||
|
|
|
@ -135,7 +135,7 @@ public class NekoExperimentalSettingsActivity extends BaseFragment {
|
||||||
if (a instanceof NekomuraTGTextCheck) {
|
if (a instanceof NekomuraTGTextCheck) {
|
||||||
((NekomuraTGTextCheck) a).onClick((TextCheckCell) view);
|
((NekomuraTGTextCheck) a).onClick((TextCheckCell) view);
|
||||||
} else if (a instanceof NekomuraTGSelectBox) {
|
} else if (a instanceof NekomuraTGSelectBox) {
|
||||||
((NekomuraTGSelectBox) a).onClick();
|
((NekomuraTGSelectBox) a).onClick(view);
|
||||||
} else if (a instanceof NekomuraTGTextInput) {
|
} else if (a instanceof NekomuraTGTextInput) {
|
||||||
((NekomuraTGTextInput) a).onClick();
|
((NekomuraTGTextInput) a).onClick();
|
||||||
} else if (a instanceof NekomuraTGTextDetail) {
|
} else if (a instanceof NekomuraTGTextDetail) {
|
||||||
|
|
|
@ -217,7 +217,7 @@ public class NekoGeneralSettingsActivity extends BaseFragment {
|
||||||
if (a instanceof NekomuraTGTextCheck) {
|
if (a instanceof NekomuraTGTextCheck) {
|
||||||
((NekomuraTGTextCheck) a).onClick((TextCheckCell) view);
|
((NekomuraTGTextCheck) a).onClick((TextCheckCell) view);
|
||||||
} else if (a instanceof NekomuraTGSelectBox) {
|
} else if (a instanceof NekomuraTGSelectBox) {
|
||||||
((NekomuraTGSelectBox) a).onClick();
|
((NekomuraTGSelectBox) a).onClick(view);
|
||||||
} else if (a instanceof NekomuraTGTextInput) {
|
} else if (a instanceof NekomuraTGTextInput) {
|
||||||
((NekomuraTGTextInput) a).onClick();
|
((NekomuraTGTextInput) a).onClick();
|
||||||
} else if (a instanceof NekomuraTGTextDetail) {
|
} else if (a instanceof NekomuraTGTextDetail) {
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package tw.nekomimi.nkmr.cells;
|
package tw.nekomimi.nkmr.cells;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.view.View;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
|
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
@ -13,8 +14,11 @@ import org.telegram.ui.ActionBar.Theme;
|
||||||
import org.telegram.ui.Cells.RadioColorCell;
|
import org.telegram.ui.Cells.RadioColorCell;
|
||||||
import org.telegram.ui.Cells.TextSettingsCell;
|
import org.telegram.ui.Cells.TextSettingsCell;
|
||||||
|
|
||||||
|
import kotlin.Unit;
|
||||||
|
import tw.nekomimi.nekogram.PopupBuilder;
|
||||||
import tw.nekomimi.nkmr.CellGroup;
|
import tw.nekomimi.nkmr.CellGroup;
|
||||||
import tw.nekomimi.nkmr.ConfigItem;
|
import tw.nekomimi.nkmr.ConfigItem;
|
||||||
|
import tw.nekomimi.nkmr.NekomuraConfig;
|
||||||
|
|
||||||
// TextSettingsCell, select from a list
|
// TextSettingsCell, select from a list
|
||||||
// Can be used without select list(custom)
|
// Can be used without select list(custom)
|
||||||
|
@ -62,24 +66,11 @@ public class NekomuraTGSelectBox extends AbstractCell {
|
||||||
cell.setTextAndValue(title, valueText, cellGroup.needSetDivider(this));
|
cell.setTextAndValue(title, valueText, cellGroup.needSetDivider(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onClick(Context ctx) {
|
public void onClickWithDialog(Context ctx) {
|
||||||
ctxCustom = ctx;
|
ctxCustom = ctx;
|
||||||
onClick();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onClick() {
|
|
||||||
if (onClickCustom != null) {
|
|
||||||
try {
|
|
||||||
onClickCustom.run();
|
|
||||||
} catch (Exception e) {
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Context context = ctxCustom != null ? ctxCustom : cellGroup.thisFragment.getParentActivity();
|
Context context = ctxCustom != null ? ctxCustom : cellGroup.thisFragment.getParentActivity();
|
||||||
if (context == null) {
|
if (context == null)
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(context); //TODO Replace with pop-up menu
|
AlertDialog.Builder builder = new AlertDialog.Builder(context); //TODO Replace with pop-up menu
|
||||||
builder.setTitle(LocaleController.getString(bindConfig.getKey()));
|
builder.setTitle(LocaleController.getString(bindConfig.getKey()));
|
||||||
|
@ -114,4 +105,37 @@ public class NekomuraTGSelectBox extends AbstractCell {
|
||||||
builder.show();
|
builder.show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void onClick(View view) {
|
||||||
|
if (onClickCustom != null) {
|
||||||
|
try {
|
||||||
|
onClickCustom.run();
|
||||||
|
} catch (Exception e) {
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Context context = ctxCustom != null ? ctxCustom : cellGroup.thisFragment.getParentActivity();
|
||||||
|
if (context == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
PopupBuilder builder = new PopupBuilder(view);
|
||||||
|
|
||||||
|
builder.setItems(this.selectList, (i, __) -> {
|
||||||
|
bindConfig.setConfigInt(i);
|
||||||
|
|
||||||
|
if (cellGroup.listAdapter != null)
|
||||||
|
cellGroup.listAdapter.notifyItemChanged(cellGroup.rows.indexOf(this));
|
||||||
|
if (cellGroup.thisFragment != null)
|
||||||
|
cellGroup.thisFragment.parentLayout.rebuildAllFragmentViews(false, false);
|
||||||
|
|
||||||
|
cellGroup.runCallback(bindConfig.getKey(), i);
|
||||||
|
|
||||||
|
return Unit.INSTANCE;
|
||||||
|
});
|
||||||
|
builder.show();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user