preyearegmi
6 years ago
10 changed files with 563 additions and 13 deletions
-
81app/src/main/java/com/gmeremit/online/gmeremittance_native/settings/adapter/LanguageSelectionDialogRVAdapter.java
-
8app/src/main/java/com/gmeremit/online/gmeremittance_native/settings/events/PasswordEvent.java
-
37app/src/main/java/com/gmeremit/online/gmeremittance_native/settings/view/LanguageSelectionDialogItemHolder.java
-
203app/src/main/java/com/gmeremit/online/gmeremittance_native/settings/view/LanguageSelectionListingDialog.java
-
94app/src/main/java/com/gmeremit/online/gmeremittance_native/settings/view/SettingsView.java
-
3app/src/main/java/com/gmeremit/online/gmeremittance_native/user_profile/view/ChangePasswordActivity.java
-
17app/src/main/res/layout/activity_settings.xml
-
100app/src/main/res/layout/language_selection_dialog.xml
-
31app/src/main/res/layout/language_selection_dialog_item_view.xml
-
2app/src/main/res/values/strings.xml
@ -0,0 +1,81 @@ |
|||
package com.gmeremit.online.gmeremittance_native.settings.adapter; |
|||
|
|||
import android.support.annotation.NonNull; |
|||
import android.support.v7.widget.RecyclerView; |
|||
import android.view.LayoutInflater; |
|||
import android.view.View; |
|||
import android.view.ViewGroup; |
|||
|
|||
import com.bumptech.glide.Glide; |
|||
import com.gmeremit.online.gmeremittance_native.R; |
|||
import com.gmeremit.online.gmeremittance_native.customwidgets.exchangecountrylistingdialog.CountryFlagMapper; |
|||
import com.gmeremit.online.gmeremittance_native.settings.view.LanguageSelectionDialogItemHolder; |
|||
import com.gmeremit.online.gmeremittance_native.settings.view.LanguageSelectionListingDialog; |
|||
import com.gmeremit.online.gmeremittance_native.splash_screen.model.LanguageModel; |
|||
import com.gmeremit.online.gmeremittance_native.splash_screen.view.LanguageSelectionItemViewHolder; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
|
|||
public class LanguageSelectionDialogRVAdapter extends RecyclerView.Adapter<LanguageSelectionDialogItemHolder> { |
|||
|
|||
private List<LanguageModel> languageModels; |
|||
private LanguageSelectionListener languageSelectionListener; |
|||
|
|||
public LanguageSelectionDialogRVAdapter(LanguageSelectionListener listener) |
|||
{ |
|||
languageModels=new ArrayList<>(); |
|||
languageSelectionListener=listener; |
|||
} |
|||
|
|||
@NonNull |
|||
@Override |
|||
public LanguageSelectionDialogItemHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { |
|||
View view=LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.language_selection_dialog_item_view,viewGroup,false); |
|||
return new LanguageSelectionDialogItemHolder(view); |
|||
} |
|||
|
|||
@Override |
|||
public void onBindViewHolder(@NonNull LanguageSelectionDialogItemHolder holder, int i) { |
|||
|
|||
LanguageModel data=languageModels.get(holder.getAdapterPosition()); |
|||
|
|||
int flagId= CountryFlagMapper.getFlagFromCountryCode(data.getCountryCode()); |
|||
if(flagId!=-1) |
|||
{ |
|||
Glide.with(holder.getImageView().getContext()) |
|||
.load(flagId) |
|||
.into(holder.getImageView()); |
|||
} |
|||
holder.setLanguageName(data.getCountryName()); |
|||
holder.itemView.setOnClickListener(view->{ |
|||
if(languageSelectionListener!=null) |
|||
languageSelectionListener.onLangugageSelected(data); |
|||
}); |
|||
} |
|||
|
|||
@Override |
|||
public int getItemCount() { |
|||
return languageModels.size(); |
|||
} |
|||
|
|||
public void setLanguageSelectionListener(LanguageSelectionListener listener) |
|||
{ |
|||
this.languageSelectionListener=listener; |
|||
} |
|||
|
|||
public void setData(List<LanguageModel> data) |
|||
{ |
|||
if(data!=null&&data.size()>0) |
|||
{ |
|||
this.languageModels=data; |
|||
notifyDataSetChanged(); |
|||
} |
|||
} |
|||
|
|||
public interface LanguageSelectionListener |
|||
{ |
|||
void onLangugageSelected(LanguageModel languageModel); |
|||
} |
|||
|
|||
} |
@ -1,8 +0,0 @@ |
|||
package com.gmeremit.online.gmeremittance_native.settings.events; |
|||
|
|||
/** |
|||
* Created by fmi-lt-11 on 3/12/18. |
|||
*/ |
|||
|
|||
public class PasswordEvent { |
|||
} |
@ -0,0 +1,37 @@ |
|||
package com.gmeremit.online.gmeremittance_native.settings.view; |
|||
|
|||
import android.support.annotation.NonNull; |
|||
import android.support.v7.widget.RecyclerView; |
|||
import android.view.View; |
|||
import android.widget.ImageView; |
|||
import android.widget.TextView; |
|||
|
|||
import com.gmeremit.online.gmeremittance_native.R; |
|||
|
|||
import butterknife.BindView; |
|||
import butterknife.ButterKnife; |
|||
|
|||
public class LanguageSelectionDialogItemHolder extends RecyclerView.ViewHolder { |
|||
|
|||
|
|||
@BindView(R.id.countryFlagImageView) |
|||
ImageView countryFlag; |
|||
|
|||
@BindView(R.id.countryName) |
|||
TextView countryName; |
|||
|
|||
public LanguageSelectionDialogItemHolder(@NonNull View itemView) { |
|||
super(itemView); |
|||
ButterKnife.bind(this, itemView); |
|||
} |
|||
|
|||
public ImageView getImageView() |
|||
{ |
|||
return countryFlag; |
|||
} |
|||
|
|||
public void setLanguageName(String name) |
|||
{ |
|||
countryName.setText(name); |
|||
} |
|||
} |
@ -0,0 +1,203 @@ |
|||
package com.gmeremit.online.gmeremittance_native.settings.view; |
|||
|
|||
import android.app.Dialog; |
|||
import android.content.Context; |
|||
import android.content.DialogInterface; |
|||
import android.os.Bundle; |
|||
import android.support.v7.app.AlertDialog; |
|||
import android.support.v7.widget.RecyclerView; |
|||
import android.text.Editable; |
|||
import android.text.TextWatcher; |
|||
import android.util.Log; |
|||
import android.view.View; |
|||
import android.view.ViewGroup; |
|||
import android.view.Window; |
|||
import android.view.WindowManager; |
|||
import android.view.inputmethod.InputMethodManager; |
|||
import android.widget.EditText; |
|||
import android.widget.TextView; |
|||
|
|||
import com.gmeremit.online.gmeremittance_native.R; |
|||
import com.gmeremit.online.gmeremittance_native.customwidgets.LineDividerItemDecoration; |
|||
import com.gmeremit.online.gmeremittance_native.customwidgets.exchangecountrylistingdialog.CountryListingRvAdapter; |
|||
import com.gmeremit.online.gmeremittance_native.exchange_rate.model.datav2.CountryPaymentService; |
|||
import com.gmeremit.online.gmeremittance_native.settings.adapter.LanguageSelectionDialogRVAdapter; |
|||
import com.gmeremit.online.gmeremittance_native.splash_screen.model.LanguageModel; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
|
|||
public class LanguageSelectionListingDialog extends android.support.v4.app.DialogFragment implements View.OnClickListener, TextWatcher { |
|||
|
|||
private List<LanguageModel> data; |
|||
private LanguageSelectionDialogRVAdapter.LanguageSelectionListener listener; |
|||
private RecyclerView countryListRv; |
|||
private View cancelButton; |
|||
private EditText noCountryFoundView; |
|||
private EditText searchEditTextView; |
|||
private LanguageSelectionDialogRVAdapter languageSelectionDialogRVAdapter; |
|||
private View searchViewContainer; |
|||
|
|||
|
|||
@Override |
|||
public Dialog onCreateDialog(Bundle savedInstanceState) { |
|||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); |
|||
View view = getActivity().getLayoutInflater().inflate(R.layout.language_selection_dialog, null); |
|||
countryListRv = view.findViewById(R.id.countryListRv); |
|||
noCountryFoundView = view.findViewById(R.id.noCountryFoundTextView); |
|||
cancelButton = view.findViewById(R.id.iv_cancel); |
|||
searchEditTextView = view.findViewById(R.id.searchEditText); |
|||
searchViewContainer= view.findViewById(R.id.searchViewContainer); |
|||
|
|||
builder.setView(view); |
|||
initialize(); |
|||
|
|||
|
|||
return builder.create(); |
|||
|
|||
} |
|||
|
|||
private void initialize() { |
|||
cancelButton.setOnClickListener(this); |
|||
searchEditTextView.addTextChangedListener(this); |
|||
languageSelectionDialogRVAdapter = new LanguageSelectionDialogRVAdapter(this.listener); |
|||
languageSelectionDialogRVAdapter.setData(this.data); |
|||
countryListRv.setAdapter(languageSelectionDialogRVAdapter); |
|||
LineDividerItemDecoration lineDividerItemDecoration = new LineDividerItemDecoration(getActivity(), LineDividerItemDecoration.VERTICAL_LIST); |
|||
countryListRv.addItemDecoration(lineDividerItemDecoration); |
|||
|
|||
searchViewContainer.setOnClickListener(new View.OnClickListener() { |
|||
@Override |
|||
public void onClick(View v) { |
|||
searchEditTextView.requestFocus(); |
|||
showKeyBoard(searchEditTextView); |
|||
} |
|||
}); |
|||
|
|||
} |
|||
|
|||
public void setListener(LanguageSelectionDialogRVAdapter.LanguageSelectionListener listener) { |
|||
this.listener = listener; |
|||
} |
|||
|
|||
public void setLanguageData(List<LanguageModel> data) { |
|||
if (data != null) { |
|||
this.data = data; |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public void onStart() { |
|||
super.onStart(); |
|||
Window window = getDialog().getWindow(); |
|||
if (window != null) { |
|||
window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); |
|||
window.setBackgroundDrawableResource(R.drawable.ic_rounded_grey_bg_with_inset); |
|||
|
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public void onClick(View v) { |
|||
switch (v.getId()) { |
|||
case R.id.iv_cancel: |
|||
cancelButton.setOnClickListener(null); |
|||
hideKeyboard(); |
|||
dismiss(); |
|||
break; |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public void onDismiss(DialogInterface dialog) { |
|||
super.onDismiss(dialog); |
|||
cancelButton.setOnClickListener(null); |
|||
searchEditTextView.removeTextChangedListener(this); |
|||
searchViewContainer.setOnClickListener(null); |
|||
|
|||
} |
|||
|
|||
private void showNoLanguageFound(boolean action) { |
|||
if (action) { |
|||
if (countryListRv.getVisibility() == View.VISIBLE) { |
|||
countryListRv.setVisibility(View.GONE); |
|||
noCountryFoundView.setVisibility(View.VISIBLE); |
|||
} |
|||
} else { |
|||
if (countryListRv.getVisibility() != View.VISIBLE) { |
|||
noCountryFoundView.setVisibility(View.GONE); |
|||
countryListRv.setVisibility(View.VISIBLE); |
|||
} |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public void beforeTextChanged(CharSequence s, int start, int count, int after) { |
|||
|
|||
} |
|||
|
|||
@Override |
|||
public void onTextChanged(CharSequence s, int start, int before, int count) { |
|||
|
|||
} |
|||
|
|||
@Override |
|||
public void afterTextChanged(Editable s) { |
|||
if (languageSelectionDialogRVAdapter != null) { |
|||
searchForCountry(s.toString()); |
|||
} |
|||
} |
|||
|
|||
private void searchForCountry(String s) { |
|||
if (this.data != null) { |
|||
if (s.length() > 0) { |
|||
List<LanguageModel> searchedData = new ArrayList<>(); |
|||
for (LanguageModel item : data) { |
|||
if (item.getCountryName().toLowerCase().contains(s.toLowerCase())) { |
|||
searchedData.add(item); |
|||
} |
|||
} |
|||
if (searchedData.size() > 0) |
|||
showNoLanguageFound(false); |
|||
else |
|||
showNoLanguageFound(true); |
|||
languageSelectionDialogRVAdapter.setData(searchedData); |
|||
|
|||
} else { |
|||
showNoLanguageFound(false); |
|||
languageSelectionDialogRVAdapter.setData(this.data); |
|||
} |
|||
} |
|||
} |
|||
|
|||
public void hideKeyboard() { |
|||
// Check if no view has focus: |
|||
try { |
|||
// View view = getActivity().getCurrentFocus(); |
|||
// |
|||
// InputMethodManager inputManager = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); |
|||
// inputManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); |
|||
getActivity().getWindow().setSoftInputMode( |
|||
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); |
|||
} |
|||
catch(Exception ex) |
|||
{ |
|||
|
|||
} |
|||
|
|||
} |
|||
|
|||
public void showKeyBoard(View view) { |
|||
try { |
|||
InputMethodManager imm = (InputMethodManager) view.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); |
|||
imm.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT); |
|||
Log.d("GMEEXCEPTION", "Keyboard shown"); |
|||
} catch (NullPointerException e) { |
|||
Log.d("GMEEXCEPTION", "Null pointer while showing keyboard"); |
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
} |
@ -0,0 +1,100 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
|||
xmlns:app="http://schemas.android.com/apk/res-auto" |
|||
android:layout_width="match_parent" |
|||
android:layout_height="match_parent" |
|||
android:orientation="vertical"> |
|||
<FrameLayout |
|||
android:background="#FAFAFA" |
|||
android:layout_width="match_parent" |
|||
android:layout_height="wrap_content"> |
|||
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView |
|||
android:id="@+id/dialog_title_txt" |
|||
android:layout_width="match_parent" |
|||
android:layout_height="wrap_content" |
|||
android:text="@string/select_language_text" |
|||
android:textColor="@color/darkgray" |
|||
android:textSize="18sp" |
|||
android:gravity="center" |
|||
android:padding="20dp" /> |
|||
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView |
|||
android:id="@+id/iv_cancel" |
|||
android:layout_width="wrap_content" |
|||
android:layout_height="match_parent" |
|||
android:padding="10dp" |
|||
android:gravity="center" |
|||
android:layout_gravity="end" |
|||
android:textColor="@color/colorAccent" |
|||
android:text="@string/cancel_text" /> |
|||
</FrameLayout> |
|||
<LinearLayout |
|||
android:id="@+id/searchViewContainer" |
|||
android:layout_width="match_parent" |
|||
android:layout_height="wrap_content" |
|||
android:background="#FBFBFB" |
|||
android:elevation="1dp" |
|||
android:focusableInTouchMode="true" |
|||
android:orientation="horizontal" |
|||
android:padding="18dp"> |
|||
|
|||
<ImageView |
|||
android:layout_width="wrap_content" |
|||
android:layout_height="wrap_content" |
|||
android:background="@drawable/ic_search_icon" |
|||
android:contentDescription="Search Icon" |
|||
/> |
|||
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeEditText |
|||
android:id="@+id/searchEditText" |
|||
android:layout_width="0dp" |
|||
android:layout_height="match_parent" |
|||
android:layout_gravity="center_vertical" |
|||
android:layout_marginLeft="15dp" |
|||
android:layout_marginStart="15dp" |
|||
android:layout_weight="1" |
|||
android:maxLength="20" |
|||
android:background="@null" |
|||
android:gravity="center_vertical" |
|||
android:hint="@string/search_language_text" |
|||
android:imeActionLabel="Done" |
|||
android:imeOptions="actionDone" |
|||
android:inputType="text" |
|||
android:textColor="@android:color/black" |
|||
android:textSize="14sp" |
|||
/> |
|||
|
|||
|
|||
|
|||
</LinearLayout> |
|||
<FrameLayout |
|||
android:layout_width="match_parent" |
|||
android:layout_height="0dp" |
|||
android:layout_weight="1"> |
|||
<android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android" |
|||
xmlns:app="http://schemas.android.com/apk/res-auto" |
|||
android:id="@+id/countryListRv" |
|||
app:layoutManager="android.support.v7.widget.LinearLayoutManager" |
|||
android:orientation="vertical" |
|||
android:layout_width="match_parent" |
|||
android:layout_height="match_parent" /> |
|||
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeEditText |
|||
android:paddingTop="20dp" |
|||
android:id="@+id/noCountryFoundTextView" |
|||
android:visibility="invisible" |
|||
android:layout_width="match_parent" |
|||
android:layout_height="wrap_content" |
|||
android:layout_gravity="center" |
|||
android:background="@null" |
|||
android:enabled="false" |
|||
android:gravity="center" |
|||
android:hint="@string/no_languages_available_text" |
|||
android:imeActionLabel="Done" |
|||
android:imeOptions="actionDone" |
|||
android:inputType="text" |
|||
android:textColor="@android:color/black" |
|||
android:textSize="14sp" |
|||
/> |
|||
</FrameLayout> |
|||
|
|||
</LinearLayout> |
|||
|
|||
|
@ -0,0 +1,31 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" |
|||
xmlns:app="http://schemas.android.com/apk/res-auto" |
|||
xmlns:tools="http://schemas.android.com/tools" |
|||
android:layout_width="match_parent" |
|||
android:layout_height="wrap_content"> |
|||
|
|||
<ImageView |
|||
android:id="@+id/countryFlagImageView" |
|||
android:layout_width="60dp" |
|||
android:layout_height="55dp" |
|||
android:layout_marginStart="23dp" |
|||
app:layout_constraintBottom_toBottomOf="parent" |
|||
app:layout_constraintEnd_toStartOf="@+id/countryName" |
|||
app:layout_constraintStart_toStartOf="parent" |
|||
app:layout_constraintTop_toTopOf="parent" /> |
|||
|
|||
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView |
|||
android:id="@+id/countryName" |
|||
android:layout_width="0dp" |
|||
android:layout_height="60dp" |
|||
android:layout_marginStart="24dp" |
|||
android:gravity="center_vertical|start" |
|||
android:minHeight="45dp" |
|||
android:paddingStart="7dp" |
|||
android:paddingLeft="7dp" |
|||
android:textSize="14sp" |
|||
app:layout_constraintEnd_toEndOf="parent" |
|||
app:layout_constraintStart_toEndOf="@+id/countryFlagImageView" |
|||
app:layout_constraintTop_toTopOf="parent" /> |
|||
</android.support.constraint.ConstraintLayout> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue