Created
March 11, 2019 17:35
-
-
Save rana01645/2c2e3b2194345eb11fe1de9fadab87d7 to your computer and use it in GitHub Desktop.
DialogFragment
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.trickbd.broadbandhack.ui.widgets; | |
import android.annotation.SuppressLint; | |
import android.app.Activity; | |
import android.app.Dialog; | |
import android.os.Bundle; | |
import android.text.TextUtils; | |
import android.util.Patterns; | |
import android.view.LayoutInflater; | |
import android.view.MotionEvent; | |
import android.view.View; | |
import android.view.ViewGroup; | |
import android.view.Window; | |
import android.view.WindowManager; | |
import android.webkit.URLUtil; | |
import android.widget.Button; | |
import android.widget.CheckBox; | |
import android.widget.EditText; | |
import android.widget.Spinner; | |
import android.widget.TextView; | |
import android.widget.Toast; | |
import com.trickbd.broadbandhack.R; | |
import com.trickbd.broadbandhack.model.country.Country; | |
import com.trickbd.broadbandhack.model.ix.SingleIx; | |
import com.trickbd.broadbandhack.ui.activity.MainActivity.fragments.onItemClick; | |
import java.io.Serializable; | |
import java.net.MalformedURLException; | |
import java.net.URL; | |
import java.util.ArrayList; | |
import java.util.List; | |
import java.util.Objects; | |
import androidx.annotation.NonNull; | |
import androidx.annotation.Nullable; | |
import androidx.appcompat.widget.AppCompatImageView; | |
import butterknife.BindView; | |
import butterknife.ButterKnife; | |
import butterknife.Unbinder; | |
import dagger.android.DaggerDialogFragment; | |
import retrofit2.http.Url; | |
public class AddIXServerDialog extends DaggerDialogFragment implements View.OnClickListener, onItemClick { | |
private static final String ITEMS = "items"; | |
@BindView(R.id.close) | |
AppCompatImageView close; | |
@BindView(R.id.url) | |
EditText url; | |
@BindView(R.id.downurl) | |
EditText downurl; | |
@BindView(R.id.types) | |
Spinner types; | |
@BindView(R.id.country) | |
TextView country; | |
@BindView(R.id.add) | |
Button add; | |
Unbinder unbinder; | |
@BindView(R.id.urlprotocal) | |
Spinner urlprotocal; | |
@BindView(R.id.downloadprotocal) | |
Spinner downloadprotocal; | |
private AddIXDialogListener listener; | |
ArrayList<Country> countries; | |
public AddIXServerDialog() { | |
} | |
public static AddIXServerDialog newInstance(List items) { | |
AddIXServerDialog addIXServerDialog = new | |
AddIXServerDialog(); | |
Bundle args = new Bundle(); | |
args.putSerializable(ITEMS, (Serializable) items); | |
addIXServerDialog.setArguments(args); | |
return addIXServerDialog; | |
} | |
@Override | |
public void onAttach(Activity context) { | |
super.onAttach(context); | |
try { | |
listener = (AddIXDialogListener) context; | |
} catch (ClassCastException e) { | |
throw new ClassCastException(context.toString() + " must implement OnArticleSelectedListener"); | |
} | |
} | |
@Override | |
public void onDetach() { | |
super.onDetach(); | |
listener = null; | |
} | |
@Override | |
public void onCreate(@Nullable Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
} | |
@NonNull | |
@Override | |
public Dialog onCreateDialog(Bundle savedInstanceState) { | |
LayoutInflater inflater = LayoutInflater.from(getActivity()); | |
View rootView = inflater.inflate(R.layout.add_ix_dialog, null); | |
unbinder = ButterKnife.bind(this, rootView); | |
Dialog dialog = new Dialog(getActivity()); | |
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); | |
dialog.setContentView(rootView); | |
dialog.setCancelable(false); | |
WindowManager.LayoutParams lp = new WindowManager.LayoutParams(); | |
lp.copyFrom(Objects.requireNonNull(dialog.getWindow()).getAttributes()); | |
lp.width = WindowManager.LayoutParams.MATCH_PARENT; | |
lp.height = WindowManager.LayoutParams.WRAP_CONTENT; | |
dialog.getWindow().setAttributes(lp); | |
setdata(); | |
return dialog; | |
} | |
private void setdata() { | |
countries = (ArrayList<Country>) getArguments().getSerializable(ITEMS); | |
setupcountryspinner(countries); | |
add.setOnClickListener(v -> validatedata()); | |
close.setOnClickListener(v -> dismiss()); | |
} | |
Country countryitem; | |
private void validatedata() { | |
if (TextUtils.isEmpty(url.getText())||(!Patterns.WEB_URL.matcher(urlprotocal.getSelectedItem().toString() + url.getText()).matches()&&!Patterns.WEB_URL.matcher(url.getText().toString()).matches())) { | |
url.setError(getString(R.string.urlinvalid)); | |
return; | |
} | |
if (TextUtils.isEmpty(downurl.getText())||(!Patterns.WEB_URL.matcher(downloadprotocal.getSelectedItem().toString() + downurl.getText()).matches()&&!Patterns.WEB_URL.matcher(downurl.getText().toString()).matches())) { | |
downurl.setError(getString(R.string.urlinvalid)); | |
return; | |
} | |
if (countryitem==null){ | |
showcountrydialog(countries); | |
Toast.makeText(getActivity(), "Please Select server country", Toast.LENGTH_SHORT).show(); | |
} | |
} | |
@SuppressLint("ClickableViewAccessibility") | |
private void setupcountryspinner(ArrayList list) { | |
country.setOnTouchListener((v, event) -> { | |
if (event.getAction() == MotionEvent.ACTION_UP) { | |
showcountrydialog(list); | |
} | |
return true; | |
}); | |
} | |
private void showcountrydialog(ArrayList list) { | |
SearchableDialogFragment _searchableListDialog = SearchableDialogFragment.newInstance | |
(list, false); | |
_searchableListDialog.setItemClick(this); | |
_searchableListDialog.setTitle("Select Country"); | |
if (_searchableListDialog.isAdded()) { | |
return; | |
} | |
_searchableListDialog.show(getFragmentManager(), "TAG"); | |
} | |
@Override | |
public void onClick(View view) { | |
switch (view.getId()) { | |
case R.id.close: | |
AddIXServerDialog.this.dismiss(); | |
break; | |
case R.id.add: | |
break; | |
} | |
} | |
@Override | |
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { | |
// TODO: inflate a fragment view | |
View rootView = super.onCreateView(inflater, container, savedInstanceState); | |
return rootView; | |
} | |
@Override | |
public void onDestroyView() { | |
super.onDestroyView(); | |
unbinder.unbind(); | |
} | |
@Override | |
public void onItemClicked(Object item, int pos) { | |
this.countryitem = (Country) item; | |
country.setText(countryitem.getName()); | |
} | |
public interface AddIXDialogListener { | |
void addix(SingleIx data); | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment