Search in sources :

Example 21 with Theme

use of net.iGap.module.Theme in project iGap-Android by KianIranian-STDG.

the class FragmentCall method onViewCreated.

@Override
public void onViewCreated(@NotNull View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    HelperTracker.sendTracker(HelperTracker.TRACKER_CALL_PAGE);
    if (getContext() != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        StatusBarUtil.setColor(getActivity(), new Theme().getPrimaryDarkColor(getContext()), 50);
    }
    callToolbar = new Toolbar(getContext());
    callToolbar.setTitle(isAppRtl ? R.string.logo_igap_fa : R.string.logo_igap_en);
    ToolbarItems toolbarItems = callToolbar.createToolbarItems();
    toolbarItems.addItemWithWidth(createCallTag, R.string.icon_add, 54);
    toolbarItems.addItemWithWidth(codeScannerTag, R.string.icon_QR_code, 54);
    callToolbar.setListener(i -> {
        switch(i) {
            case -1:
                setViewState(!mIsMultiSelectEnable);
                hideActionMode();
                mSelectedLogList.clear();
                break;
            case createCallTag:
                showContactListForCall();
                break;
            case codeScannerTag:
                onCodeScannerClickListener();
                break;
            case deleteAllTag:
                if (getRequestManager().isUserLogin()) {
                    new MaterialDialog.Builder(getContext()).title(R.string.clean_log).content(R.string.are_you_sure_clear_call_logs).positiveText(R.string.B_ok).onPositive((dialog, which) -> {
                        DbManager.getInstance().doRealmTask(realm -> {
                            // ToDo: add callback to proto request
                            setViewState(false);
                            RealmCallLog realmCallLog = realm.where(RealmCallLog.class).findAll().sort("offerTime", Sort.DESCENDING).first();
                            new RequestSignalingClearLog().signalingClearLog(realmCallLog.getId());
                            view.findViewById(R.id.empty_layout).setVisibility(View.VISIBLE);
                            mSelectedLogList.clear();
                        });
                        hideActionMode();
                    }).negativeText(R.string.B_cancel).show();
                } else {
                    HelperError.showSnackMessage(getString(R.string.there_is_no_connection_to_server), false);
                }
                break;
            case deleteTag:
                if (mSelectedLogList.size() == 0) {
                    Toast.makeText(_mActivity, getString(R.string.no_item_selected), Toast.LENGTH_SHORT).show();
                    return;
                }
                if (getRequestManager().isUserLogin()) {
                    new MaterialDialog.Builder(getActivity()).title(R.string.clean_log).content(R.string.are_you_sure_clear_call_log).positiveText(R.string.B_ok).onPositive((dialog, which) -> {
                        try {
                            List<Long> logIds = new ArrayList<>();
                            for (int j = 0; j < mSelectedLogList.size(); j++) {
                                logIds.add(mSelectedLogList.get(j).getLogId());
                            }
                            new RequestSignalingClearLog().signalingClearLog(logIds);
                            setViewState(false);
                            mSelectedLogList.clear();
                            if (realmResults.size() == 0) {
                                view.findViewById(R.id.empty_layout).setVisibility(View.VISIBLE);
                            }
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                        hideActionMode();
                    }).negativeText(R.string.B_cancel).show();
                } else {
                    HelperError.showSnackMessage(getString(R.string.there_is_no_connection_to_server), false);
                }
                break;
        }
    });
    createToolbarActions();
    mediaContainer = new FragmentMediaContainer(getContext(), this);
    mediaContainer.setListener(i -> {
        switch(i) {
            case FragmentMediaContainer.CALL_TAG:
                getActivity().startActivity(new Intent(getContext(), CallActivity.class));
                break;
            case FragmentMediaContainer.MEDIA_TAG:
                if (!MusicPlayer.isVoice) {
                    Intent intent = new Intent(context, ActivityMain.class);
                    intent.putExtra(ActivityMain.openMediaPlayer, true);
                    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    getActivity().startActivity(intent);
                }
                break;
            case FragmentMediaContainer.PLAY_TAG:
                break;
        }
    });
    ViewGroup layoutToolbar = view.findViewById(R.id.fc_layout_toolbar);
    layoutToolbar.addView(mediaContainer, LayoutCreator.createFrame(LayoutCreator.MATCH_PARENT, 38, Gravity.BOTTOM, 0, 60, 0, 0));
    layoutToolbar.addView(callToolbar, LayoutCreator.createFrame(LayoutCreator.MATCH_PARENT, 64, Gravity.TOP));
    mBtnAllCalls = view.findViewById(R.id.fc_btn_all_calls);
    mBtnMissedCalls = view.findViewById(R.id.fc_btn_missed_calls);
    mBtnCanceledCalls = view.findViewById(R.id.fc_btn_canceled_calls);
    mBtnIncomingCalls = view.findViewById(R.id.fc_btn_incoming_calls);
    mBtnOutgoingCalls = view.findViewById(R.id.fc_btn_outgoing_calls);
    progressBar = view.findViewById(R.id.fc_progress_bar_waiting);
    emptuListView = view.findViewById(R.id.empty_layout);
    progressBar = view.findViewById(R.id.fc_progress_bar_waiting);
    mRecyclerView = view.findViewById(R.id.fc_recycler_view_call);
    mFiltersLayout = view.findViewById(R.id.fc_layout_filters);
    setEnableButton(mSelectedStatus);
    mRecyclerView = view.findViewById(R.id.fc_recycler_view_call);
    mRecyclerView.setItemAnimator(null);
    mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false));
    if (realmResults == null) {
        realmResults = DbManager.getInstance().doRealmTask(realm -> {
            return getRealmResult(mSelectedStatus, realm);
        });
    }
    realmResults.addChangeListener((realmCallLogs, changeSet) -> {
        checkListIsEmpty();
    });
    checkListIsEmpty();
    mRecyclerView.setAdapter(new CallAdapter(realmResults));
    mOffset = 0;
    getLogListWithOffset();
    mRecyclerView.getAdapter().registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {

        @Override
        public void onItemRangeInserted(int positionStart, int itemCount) {
            super.onItemRangeInserted(positionStart, itemCount);
            checkListIsEmpty();
        }

        @Override
        public void onItemRangeRemoved(int positionStart, int itemCount) {
            super.onItemRangeRemoved(positionStart, itemCount);
            checkListIsEmpty();
        }
    });
    onScrollListener = new RecyclerView.OnScrollListener() {

        @Override
        public void onScrolled(@NotNull RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);
            if (isThereAnyMoreItemToLoad) {
                if (!isSendRequestForLoading) {
                    int lastVisiblePosition = ((LinearLayoutManager) recyclerView.getLayoutManager()).findLastVisibleItemPosition();
                    if (lastVisiblePosition + 15 >= mOffset) {
                        getLogListWithOffset();
                    }
                }
            }
        }
    };
    mRecyclerView.addOnScrollListener(onScrollListener);
    G.iSignalingGetCallLog = (size, signalingLogList) -> {
        if (signalingLogList != null) {
            G.handler.post(() -> progressBar.setVisibility(View.GONE));
        }
        if (size == -1) {
            if (attampOnError < 2) {
                isSendRequestForLoading = false;
                attampOnError++;
            } else {
                isThereAnyMoreItemToLoad = false;
                mRecyclerView.removeOnScrollListener(onScrollListener);
            }
        } else if (size == 0) {
            isThereAnyMoreItemToLoad = false;
            mRecyclerView.removeOnScrollListener(onScrollListener);
        } else {
            isSendRequestForLoading = false;
            mOffset += size;
        }
    };
    mBtnAllCalls.setOnClickListener(v -> {
        if (mSelectedStatus != ProtoSignalingGetLog.SignalingGetLog.Filter.ALL) {
            setEnableButton(ProtoSignalingGetLog.SignalingGetLog.Filter.ALL);
            getCallLogsFromRealm(ProtoSignalingGetLog.SignalingGetLog.Filter.ALL);
        }
    });
    mBtnMissedCalls.setOnClickListener(v -> {
        if (mSelectedStatus != ProtoSignalingGetLog.SignalingGetLog.Filter.MISSED) {
            setEnableButton(ProtoSignalingGetLog.SignalingGetLog.Filter.MISSED);
            getCallLogsFromRealm(ProtoSignalingGetLog.SignalingGetLog.Filter.MISSED);
        }
    });
    mBtnOutgoingCalls.setOnClickListener(v -> {
        if (mSelectedStatus != ProtoSignalingGetLog.SignalingGetLog.Filter.OUTGOING) {
            setEnableButton(ProtoSignalingGetLog.SignalingGetLog.Filter.OUTGOING);
            getCallLogsFromRealm(ProtoSignalingGetLog.SignalingGetLog.Filter.OUTGOING);
        }
    });
    mBtnIncomingCalls.setOnClickListener(v -> {
        if (mSelectedStatus != ProtoSignalingGetLog.SignalingGetLog.Filter.INCOMING) {
            setEnableButton(ProtoSignalingGetLog.SignalingGetLog.Filter.INCOMING);
            getCallLogsFromRealm(ProtoSignalingGetLog.SignalingGetLog.Filter.INCOMING);
        }
    });
    mBtnCanceledCalls.setOnClickListener(v -> {
        if (mSelectedStatus != ProtoSignalingGetLog.SignalingGetLog.Filter.CANCELED) {
            setEnableButton(ProtoSignalingGetLog.SignalingGetLog.Filter.CANCELED);
            getCallLogsFromRealm(ProtoSignalingGetLog.SignalingGetLog.Filter.CANCELED);
        }
    });
    // Todo: fixed it, cause load view with delay
    setViewState(mIsMultiSelectEnable);
}
Also used : Bundle(android.os.Bundle) DateUtils(android.text.format.DateUtils) AppUtils(net.iGap.module.AppUtils) ProgressBar(android.widget.ProgressBar) ToolbarItem(net.iGap.messenger.ui.toolBar.ToolbarItem) Animator(android.animation.Animator) Theme(net.iGap.module.Theme) G(net.iGap.G) G.isAppRtl(net.iGap.G.isAppRtl) Handler(android.os.Handler) Fragment(androidx.fragment.app.Fragment) View(android.view.View) CallActivity(net.iGap.activities.CallActivity) HelperError(net.iGap.helper.HelperError) RecyclerView(androidx.recyclerview.widget.RecyclerView) HelperFragment(net.iGap.helper.HelperFragment) VIDEO_CALLING(net.iGap.proto.ProtoSignalingOffer.SignalingOffer.Type.VIDEO_CALLING) HelperTracker(net.iGap.helper.HelperTracker) ParamWithAvatarType(net.iGap.helper.avatar.ParamWithAvatarType) Realm(io.realm.Realm) HelperCalander(net.iGap.helper.HelperCalander) ObjectAnimator(android.animation.ObjectAnimator) NumberTextView(net.iGap.messenger.ui.toolBar.NumberTextView) ProtoSignalingOffer(net.iGap.proto.ProtoSignalingOffer) ViewGroup(android.view.ViewGroup) List(java.util.List) TextView(android.widget.TextView) Nullable(androidx.annotation.Nullable) BackDrawable(net.iGap.messenger.ui.toolBar.BackDrawable) RealmRecyclerViewAdapter(io.realm.RealmRecyclerViewAdapter) MusicPlayer(net.iGap.module.MusicPlayer) Sort(io.realm.Sort) LinearLayoutManager(androidx.recyclerview.widget.LinearLayoutManager) MaterialDialog(com.afollestad.materialdialogs.MaterialDialog) NotNull(org.jetbrains.annotations.NotNull) EmojiManager(net.iGap.libs.emojiKeyboard.emoji.EmojiManager) ResourcesCompat(androidx.core.content.res.ResourcesCompat) ActivityMain(net.iGap.activities.ActivityMain) AccountManager(net.iGap.module.accountManager.AccountManager) Intent(android.content.Intent) TimeUtils(net.iGap.module.TimeUtils) StatusBarUtil(net.iGap.module.StatusBarUtil) ArrayList(java.util.ArrayList) RealmCallLog(net.iGap.realm.RealmCallLog) MotionEvent(android.view.MotionEvent) Toast(android.widget.Toast) AnimatorSet(android.animation.AnimatorSet) LayoutCreator(net.iGap.helper.LayoutCreator) ProtoSignalingGetLog(net.iGap.proto.ProtoSignalingGetLog) Build(android.os.Build) Toolbar(net.iGap.messenger.ui.toolBar.Toolbar) AvatarHandler(net.iGap.helper.avatar.AvatarHandler) ToolbarItems(net.iGap.messenger.ui.toolBar.ToolbarItems) LayoutInflater(android.view.LayoutInflater) RequestSignalingClearLog(net.iGap.request.RequestSignalingClearLog) RealmResults(io.realm.RealmResults) CheckBox(net.iGap.module.customView.CheckBox) MaterialDesignTextView(net.iGap.module.MaterialDesignTextView) ScanCodeQRCodePaymentFragment(net.iGap.fragments.qrCodePayment.fragments.ScanCodeQRCodePaymentFragment) FragmentMediaContainer(net.iGap.messenger.ui.components.FragmentMediaContainer) CircleImageView(net.iGap.module.CircleImageView) Gravity(android.view.Gravity) ViewMaker(net.iGap.adapter.items.chat.ViewMaker) R(net.iGap.R) DbManager(net.iGap.module.accountManager.DbManager) RequestSignalingGetLog(net.iGap.request.RequestSignalingGetLog) FragmentMediaContainer(net.iGap.messenger.ui.components.FragmentMediaContainer) ViewGroup(android.view.ViewGroup) ArrayList(java.util.ArrayList) RequestSignalingClearLog(net.iGap.request.RequestSignalingClearLog) Intent(android.content.Intent) CallActivity(net.iGap.activities.CallActivity) LinearLayoutManager(androidx.recyclerview.widget.LinearLayoutManager) RealmCallLog(net.iGap.realm.RealmCallLog) ToolbarItems(net.iGap.messenger.ui.toolBar.ToolbarItems) Theme(net.iGap.module.Theme) RecyclerView(androidx.recyclerview.widget.RecyclerView) Toolbar(net.iGap.messenger.ui.toolBar.Toolbar)

Example 22 with Theme

use of net.iGap.module.Theme in project iGap-Android by KianIranian-STDG.

the class FragmentEditProfile method showCountryDialog.

private void showCountryDialog() {
    if (getActivity() != null) {
        Dialog dialogChooseCountry = new Dialog(getActivity());
        dialogChooseCountry.requestWindowFeature(Window.FEATURE_NO_TITLE);
        dialogChooseCountry.setContentView(R.layout.rg_dialog);
        dialogChooseCountry.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
        int setWidth = (int) (getResources().getDisplayMetrics().widthPixels * 0.9);
        int setHeight = (int) (getResources().getDisplayMetrics().heightPixels * 0.9);
        dialogChooseCountry.getWindow().setLayout(setWidth, setHeight);
        // 
        final TextView txtTitle = dialogChooseCountry.findViewById(R.id.rg_txt_titleToolbar);
        SearchView edtSearchView = dialogChooseCountry.findViewById(R.id.rg_edtSearch_toolbar);
        LinearLayout rootView = dialogChooseCountry.findViewById(R.id.country_root);
        rootView.setBackground(new Theme().tintDrawable(getResources().getDrawable(R.drawable.dialog_background), getContext(), R.attr.rootBackgroundColor));
        txtTitle.setOnClickListener(view -> {
            edtSearchView.setIconified(false);
            edtSearchView.setIconifiedByDefault(true);
            txtTitle.setVisibility(View.GONE);
        });
        // close SearchView and show title again
        edtSearchView.setOnCloseListener(() -> {
            txtTitle.setVisibility(View.VISIBLE);
            return false;
        });
        ListView listView = dialogChooseCountry.findViewById(R.id.lstContent);
        AdapterDialog adapterDialog = new AdapterDialog(viewModel.getStructCountryArrayList());
        listView.setAdapter(adapterDialog);
        listView.setOnItemClickListener((parent, view, position, id) -> {
            viewModel.setCountry(adapterDialog.getItem(position));
            dialogChooseCountry.dismiss();
        });
        ViewGroup root = dialogChooseCountry.findViewById(android.R.id.content);
        InputMethodManager im = (InputMethodManager) getActivity().getSystemService(Activity.INPUT_METHOD_SERVICE);
        SoftKeyboard softKeyboard = new SoftKeyboard(root, im);
        softKeyboard.setSoftKeyboardCallback(new SoftKeyboard.SoftKeyboardChanged() {

            @Override
            public void onSoftKeyboardHide() {
                G.handler.post(() -> {
                    if (edtSearchView.getQuery().toString().length() > 0) {
                        edtSearchView.setIconified(false);
                        edtSearchView.clearFocus();
                        txtTitle.setVisibility(View.GONE);
                    } else {
                        edtSearchView.setIconified(true);
                        txtTitle.setVisibility(View.VISIBLE);
                    }
                    adapterDialog.notifyDataSetChanged();
                });
            }

            @Override
            public void onSoftKeyboardShow() {
                G.handler.post(() -> txtTitle.setVisibility(View.GONE));
            }
        });
        View border = dialogChooseCountry.findViewById(R.id.rg_borderButton);
        listView.setOnScrollListener(new AbsListView.OnScrollListener() {

            @Override
            public void onScrollStateChanged(AbsListView absListView, int i) {
            }

            @Override
            public void onScroll(AbsListView absListView, int i, int i1, int i2) {
                if (i > 0) {
                    border.setVisibility(View.VISIBLE);
                } else {
                    border.setVisibility(View.GONE);
                }
            }
        });
        adapterDialog.notifyDataSetChanged();
        edtSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {

            @Override
            public boolean onQueryTextSubmit(String s) {
                return false;
            }

            @Override
            public boolean onQueryTextChange(String s) {
                adapterDialog.getFilter().filter(s);
                return false;
            }
        });
        dialogChooseCountry.findViewById(R.id.rg_txt_okDialog).setOnClickListener(v -> dialogChooseCountry.dismiss());
        dialogChooseCountry.show();
    }
}
Also used : ViewGroup(android.view.ViewGroup) AdapterDialog(net.iGap.adapter.AdapterDialog) AbsListView(android.widget.AbsListView) InputMethodManager(android.view.inputmethod.InputMethodManager) View(android.view.View) AbsListView(android.widget.AbsListView) SearchView(androidx.appcompat.widget.SearchView) TextView(android.widget.TextView) ListView(android.widget.ListView) AbsListView(android.widget.AbsListView) ListView(android.widget.ListView) ColorDrawable(android.graphics.drawable.ColorDrawable) SearchView(androidx.appcompat.widget.SearchView) Dialog(android.app.Dialog) AdapterDialog(net.iGap.adapter.AdapterDialog) Theme(net.iGap.module.Theme) SoftKeyboard(net.iGap.module.SoftKeyboard) TextView(android.widget.TextView) LinearLayout(android.widget.LinearLayout)

Example 23 with Theme

use of net.iGap.module.Theme in project iGap-Android by KianIranian-STDG.

the class FastScroller method initialise.

private void initialise(Context context) {
    setOrientation(HORIZONTAL);
    setClipChildren(false);
    LayoutInflater inflater = LayoutInflater.from(context);
    inflater.inflate(R.layout.fastscroller, this);
    handle = findViewById(R.id.fastscroller_bubble);
    bubble = new PopupWindow(getContext());
    bubble.setWidth(LayoutParams.WRAP_CONTENT);
    bubble.setHeight(LayoutParams.WRAP_CONTENT);
    bubble.setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
    textView = new TextView(getContext());
    textView.setGravity(Gravity.CENTER);
    textView.setTypeface(ResourcesCompat.getFont(textView.getContext(), R.font.main_font));
    textView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
    bubble.setContentView(textView);
    int handleResId;
    if (G.isAppRtl) {
        handleResId = R.drawable.fastscroll_bubble_light_left;
    } else {
        handleResId = R.drawable.fastscroll_bubble_light_right;
    }
    textView.setTextColor(new Theme().getPrimaryTextColor(context));
    handle.setBackgroundResource(new Theme().getFastScrollerBackground(context));
    textView.setBackground(new Theme().tintDrawable(ContextCompat.getDrawable(context, handleResId), context, R.attr.iGapButtonColor));
}
Also used : ColorDrawable(android.graphics.drawable.ColorDrawable) LayoutInflater(android.view.LayoutInflater) PopupWindow(android.widget.PopupWindow) Theme(net.iGap.module.Theme) TextView(android.widget.TextView)

Example 24 with Theme

use of net.iGap.module.Theme in project iGap-Android by KianIranian-STDG.

the class FragmentMap method initComponent.

private void initComponent(View view, int type, long roomId, String senderId) {
    SupportMapFragment mapFragment = new SupportMapFragment();
    if (getActivity() != null) {
        new HelperFragment(getActivity().getSupportFragmentManager(), mapFragment).setReplace(false).setAddToBackStack(false).setResourceContainer(mf_fragment_map_view).load();
    }
    mapFragment.getMapAsync(FragmentMap.this);
    rvSendPosition = view.findViewById(R.id.mf_rv_send_position);
    rvSendPosition.setBackgroundColor(new Theme().getPrimaryColor(getContext()));
    if (mode == Mode.sendPosition) {
        fabOpenMap.hide();
        rvSendPosition.setVisibility(View.VISIBLE);
        rvSeePosition.setVisibility(View.GONE);
        rvSendPosition.setOnClickListener(this);
    } else if (mode == Mode.seePosition) {
        rvSeePosition.setVisibility(View.VISIBLE);
        fabOpenMap.show();
        rvSendPosition.setVisibility(View.GONE);
        fabOpenMap.setOnClickListener(this);
        DbManager.getInstance().doRealmTask(realm -> {
            CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) fabOpenMap.getLayoutParams();
            if (HelperCalander.isPersianUnicode) {
                // params.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
                params.anchorGravity = Gravity.LEFT | Gravity.BOTTOM;
                txtUserName.setGravity(Gravity.RIGHT);
                ((RelativeLayout.LayoutParams) txtUserName.getLayoutParams()).addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
            } else {
                // params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
                params.anchorGravity = Gravity.RIGHT | Gravity.BOTTOM;
                txtUserName.setGravity(Gravity.LEFT);
                ((RelativeLayout.LayoutParams) txtUserName.getLayoutParams()).addRule(RelativeLayout.ALIGN_PARENT_LEFT);
            }
            if (type == ProtoGlobal.Room.Type.CHAT.getNumber() || type == ProtoGlobal.Room.Type.GROUP.getNumber()) {
                RealmRegisteredInfo realmRegisteredInfo = realm.where(RealmRegisteredInfo.class).equalTo("id", Long.parseLong(senderId)).findFirst();
                txtUserName.setText(realmRegisteredInfo.getDisplayName());
                setAvatar(Long.parseLong(senderId));
            } else {
                RealmRoom realmRoom = realm.where(RealmRoom.class).equalTo("id", roomId).findFirst();
                txtUserName.setText(realmRoom.getTitle());
                setAvatar(roomId);
            }
        });
    }
}
Also used : CameraUpdateFactory(com.google.android.gms.maps.CameraUpdateFactory) Bundle(android.os.Bundle) PackageManager(android.content.pm.PackageManager) Uri(android.net.Uri) ImageView(android.widget.ImageView) Theme(net.iGap.module.Theme) LocationListener(android.location.LocationListener) Drawable(android.graphics.drawable.Drawable) G(net.iGap.G) ColorStateList(android.content.res.ColorStateList) HelperSetAction(net.iGap.helper.HelperSetAction) FloatingActionButton(com.google.android.material.floatingactionbutton.FloatingActionButton) Display(android.view.Display) View(android.view.View) HelperError(net.iGap.helper.HelperError) ContextCompat(androidx.core.content.ContextCompat) HelperFragment(net.iGap.helper.HelperFragment) Log(android.util.Log) ParamWithAvatarType(net.iGap.helper.avatar.ParamWithAvatarType) CoordinatorLayout(androidx.coordinatorlayout.widget.CoordinatorLayout) HelperCalander(net.iGap.helper.HelperCalander) LatLng(com.google.android.gms.maps.model.LatLng) AsyncTask(android.os.AsyncTask) CameraPosition(com.google.android.gms.maps.model.CameraPosition) RealmRoom(net.iGap.realm.RealmRoom) PorterDuff(android.graphics.PorterDuff) ViewGroup(android.view.ViewGroup) FileNotFoundException(java.io.FileNotFoundException) TextView(android.widget.TextView) Nullable(androidx.annotation.Nullable) RealmRegisteredInfo(net.iGap.realm.RealmRegisteredInfo) ActivityNotFoundException(android.content.ActivityNotFoundException) G.isLocationFromBot(net.iGap.G.isLocationFromBot) PorterDuffColorFilter(android.graphics.PorterDuffColorFilter) RelativeLayout(android.widget.RelativeLayout) Location(android.location.Location) Marker(com.google.android.gms.maps.model.Marker) LocationManager(android.location.LocationManager) R.id.mf_fragment_map_view(net.iGap.R.id.mf_fragment_map_view) Context(android.content.Context) Criteria(android.location.Criteria) Intent(android.content.Intent) BitmapFactory(android.graphics.BitmapFactory) SuppressLint(android.annotation.SuppressLint) Build(android.os.Build) SupportMapFragment(com.google.android.gms.maps.SupportMapFragment) AvatarHandler(net.iGap.helper.avatar.AvatarHandler) OutputStream(java.io.OutputStream) LayoutInflater(android.view.LayoutInflater) ActivityCompat(androidx.core.app.ActivityCompat) MarkerOptions(com.google.android.gms.maps.model.MarkerOptions) FileOutputStream(java.io.FileOutputStream) Point(android.graphics.Point) File(java.io.File) Color(android.graphics.Color) Gravity(android.view.Gravity) OnMapReadyCallback(com.google.android.gms.maps.OnMapReadyCallback) HelperString(net.iGap.helper.HelperString) Bitmap(android.graphics.Bitmap) ProtoGlobal(net.iGap.proto.ProtoGlobal) R(net.iGap.R) GoogleMap(com.google.android.gms.maps.GoogleMap) DbManager(net.iGap.module.accountManager.DbManager) InputStream(java.io.InputStream) CoordinatorLayout(androidx.coordinatorlayout.widget.CoordinatorLayout) SupportMapFragment(com.google.android.gms.maps.SupportMapFragment) RelativeLayout(android.widget.RelativeLayout) Theme(net.iGap.module.Theme) RealmRoom(net.iGap.realm.RealmRoom) HelperFragment(net.iGap.helper.HelperFragment) RealmRegisteredInfo(net.iGap.realm.RealmRegisteredInfo)

Example 25 with Theme

use of net.iGap.module.Theme in project iGap-Android by KianIranian-STDG.

the class FragmentiGapMap method startMap.

private void startMap(View view) {
    /**
     * Set Type Of Map
     */
    try {
        map.setTileSource(TileSourceFactory.MAPNIK);
        /**
         * Zoom With MultiTouch And With Two Finger
         */
        map.setBuiltInZoomControls(false);
        map.setMultiTouchControls(true);
        /**
         * Compass
         */
        CompassOverlay mCompassOverlay = new CompassOverlay(getContext(), new InternalCompassOrientationProvider(getContext()), map);
        mCompassOverlay.enableCompass();
        map.getOverlays().add(mCompassOverlay);
        /**
         * Set Zoom Value
         */
        IMapController mapController = map.getController();
        mapController.setZoom(ZOOM_LEVEL_NORMAL);
        /**
         * double tap callback enable
         */
        final GestureDetector mGestureDetector = new GestureDetector(G.context, this);
        map.setOnTouchListener(new View.OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                return mGestureDetector.onTouchEvent(event);
            }
        });
        if (mapUrls.size() > 0) {
            url = mapUrls.get(new Random().nextInt(mapUrls.size()));
        } else {
            crashlytics.recordException(new Exception("FragmentiGapMap -> mapUrls==0; time:" + System.currentTimeMillis()));
            url = URL_MAP;
        }
        changeState = getActivity().getSharedPreferences("KEY_SWITCH_MAP_STATE", Context.MODE_PRIVATE).getBoolean("state", false);
        // map.setTileSource(new OnlineTileSourceBase("USGS Topo", ZOOM_LEVEL_MIN, ZOOM_LEVEL_MAX, 256, ".png", new String[]{url}) {
        // @Override
        // public String getTileURLString(MapTile aTile) {
        // if (!changeState)
        // return "https://mt1.google.com/vt/lyrs=m&hl=fa&x=" + aTile.getX() + "&y=" + aTile.getY() + "&z=" + aTile.getZoomLevel();
        // else
        // return "https://mt1.google.com/vt/lyrs=y&hl=fa&x=" + aTile.getX() + "&y=" + aTile.getY() + "&z=" + aTile.getZoomLevel();
        // }
        // });
        ViewGroup mapContainer = view.findViewById(R.id.mapContainer);
        mapContainer.setOnClickListener(v -> {
        });
        DbManager.getInstance().doRealmTransaction(realm -> {
            realm.where(RealmGeoNearbyDistance.class).findAll().deleteAllFromRealm();
        });
        rootTurnOnGps = view.findViewById(R.id.scrollView);
        rootTurnOnGps.setOnClickListener(v -> {
        // have to empty
        });
        vgMessageGps = view.findViewById(R.id.vgMessageGps);
        txtTextTurnOnOffGps = view.findViewById(R.id.txtTextTurnOnOffGps);
        txtDescriptionMap = view.findViewById(R.id.txtDescriptionMap);
        edtMessageGps = view.findViewById(R.id.edtMessageGps);
        edtMessageGps.setOnTouchListener((v, event) -> {
            edtMessageGps.setSingleLine(false);
            return false;
        });
        prgWaitingGetUser = view.findViewById(R.id.prgWaitingGetUser);
        toggleGps = view.findViewById(R.id.toggleGps);
        toggleGps.setOnClickListener(v -> {
            if (!isGpsOn) {
                try {
                    startActivity(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS));
                } catch (ActivityNotFoundException e) {
                    e.printStackTrace();
                }
            } else {
                new MaterialDialog.Builder(getContext()).title(R.string.Visible_Status_title_dialog).content(R.string.Visible_Status_text_dialog).positiveText(R.string.yes).onPositive(new MaterialDialog.SingleButtonCallback() {

                    @Override
                    public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
                        if (getRequestManager().isUserLogin()) {
                            new RequestGeoRegister().register(true);
                        } else {
                            toggleGps.setChecked(false);
                            showSnackBar(getString(R.string.please_check_your_connenction));
                        }
                    }
                }).negativeText(R.string.no).onNegative((dialog, which) -> toggleGps.setChecked(false)).show();
            }
        });
        prgWaitingSendMessage = view.findViewById(R.id.prgWaitSendMessage);
        txtSendMessageGps = view.findViewById(R.id.txtSendMessageGps);
        txtSendMessageGps.setText(R.string.icon_close);
        G.onGeoCommentResponse = new OnGeoCommentResponse() {

            @Override
            public void commentResponse() {
                G.handler.post(() -> {
                    txtComment = edtMessageGps.getText().toString();
                    if (edtMessageGps.length() > 0) {
                        txtSendMessageGps.setVisibility(View.VISIBLE);
                    } else {
                        txtSendMessageGps.setVisibility(View.GONE);
                    }
                    prgWaitingSendMessage.setVisibility(View.GONE);
                    txtSendMessageGps.setText(R.string.icon_close);
                    edtMessageGps.setEnabled(true);
                });
            }

            @Override
            public void errorCommentResponse() {
                G.handler.post(() -> {
                    txtSendMessageGps.setVisibility(View.VISIBLE);
                    prgWaitingSendMessage.setVisibility(View.GONE);
                    txtSendMessageGps.setText(R.string.icon_close);
                    edtMessageGps.setEnabled(true);
                });
            }

            @Override
            public void timeOutCommentResponse() {
                G.handler.post(new Runnable() {

                    @Override
                    public void run() {
                        txtSendMessageGps.setVisibility(View.VISIBLE);
                        txtSendMessageGps.setText(R.string.icon_close);
                        prgWaitingSendMessage.setVisibility(View.GONE);
                        edtMessageGps.setEnabled(true);
                    }
                });
            }
        };
        txtSendMessageGps.setOnClickListener(v -> {
            if (txtSendMessageGps.getText().toString().contains(G.fragmentActivity.getResources().getString(R.string.icon_close))) {
                new MaterialDialog.Builder(G.fragmentActivity).title(R.string.Clear_Status).content(R.string.Clear_Status_desc).positiveText(R.string.st_dialog_reset_all_notification_yes).onPositive(new MaterialDialog.SingleButtonCallback() {

                    @Override
                    public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
                        new RequestGeoUpdateComment().updateComment("");
                        edtMessageGps.setText("");
                        txtSendMessageGps.setVisibility(View.GONE);
                        txtSendMessageGps.setText(R.string.icon_close);
                    }
                }).negativeText(R.string.st_dialog_reset_all_notification_no).onNegative((dialog, which) -> {
                }).show();
            } else {
                txtSendMessageGps.setVisibility(View.GONE);
                prgWaitingSendMessage.setVisibility(View.VISIBLE);
                edtMessageGps.setEnabled(false);
                new RequestGeoUpdateComment().updateComment(edtMessageGps.getText().toString());
            }
        // edtMessageGps.setText("");
        });
        final String beforChangeComment = edtMessageGps.getText().toString();
        edtMessageGps.addTextChangedListener(new TextWatcher() {

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                if (s.length() > 0) {
                    if (!txtComment.equals(s.toString())) {
                        txtSendMessageGps.setVisibility(View.VISIBLE);
                        txtSendMessageGps.setText(R.string.icon_sent);
                    } else {
                        txtSendMessageGps.setVisibility(View.VISIBLE);
                        txtSendMessageGps.setText(R.string.icon_close);
                    }
                } else {
                    txtSendMessageGps.setVisibility(View.GONE);
                }
            }

            @Override
            public void afterTextChanged(Editable s) {
                edtMessageGps.removeTextChangedListener(this);
                if (edtMessageGps.getLineCount() > 4) {
                    edtMessageGps.setText(specialRequests);
                    if (isEndLine) {
                        isEndLine = false;
                        showSnackBar(G.fragmentActivity.getResources().getString(R.string.exceed_4_line));
                    }
                } else {
                    isEndLine = true;
                    specialRequests = edtMessageGps.getText().toString();
                }
                edtMessageGps.addTextChangedListener(this);
            }
        });
        fabGps = view.findViewById(st_fab_gps);
        fabGps.setBackgroundTintList(ColorStateList.valueOf(new Theme().getButtonColor(getContext())));
        fabGps.setColorFilter(Color.WHITE);
        fabGps.setOnClickListener(v -> {
            if (location != null) {
                currentLocation(location, false);
                new RequestGeoUpdatePosition().updatePosition(location.getLatitude(), location.getLongitude());
            } else {
                GPSTracker.getGpsTrackerInstance().detectLocation();
            }
        });
        view.findViewById(R.id.backgroundToolbarMap).setBackgroundColor(new Theme().getPrimaryColor(getContext()));
        btnBack = view.findViewById(R.id.ripple_back_map);
        rippleMoreMap = view.findViewById(R.id.ripple_more_map);
        if (FragmentiGapMap.mineStaticLocation != null) {
            GPSTracker.getGpsTrackerInstance().onLocationChanged(FragmentiGapMap.mineStaticLocation);
        }
    } catch (Exception e) {
    }
}
Also used : ThumbnailUtils(android.media.ThumbnailUtils) Bundle(android.os.Bundle) ProgressBar(android.widget.ProgressBar) NonNull(androidx.annotation.NonNull) CompassOverlay(org.osmdroid.views.overlay.compass.CompassOverlay) RequestGeoGetNearbyCoordinate(net.iGap.request.RequestGeoGetNearbyCoordinate) Drawable(android.graphics.drawable.Drawable) RequestGeoUpdatePosition(net.iGap.request.RequestGeoUpdatePosition) ColorStateList(android.content.res.ColorStateList) Canvas(android.graphics.Canvas) HelperError(net.iGap.helper.HelperError) ToggleButton(android.widget.ToggleButton) HelperFragment(net.iGap.helper.HelperFragment) RequestGeoRegister(net.iGap.request.RequestGeoRegister) Configuration(org.osmdroid.config.Configuration) ArcMenu(net.iGap.libs.floatingAddButton.ArcMenu) HelperTracker(net.iGap.helper.HelperTracker) Realm(io.realm.Realm) IConfigurationProvider(org.osmdroid.config.IConfigurationProvider) ScrollEvent(org.osmdroid.events.ScrollEvent) OnInfo(net.iGap.observers.interfaces.OnInfo) Nullable(androidx.annotation.Nullable) BackDrawable(net.iGap.messenger.ui.toolBar.BackDrawable) SHP_SETTING(net.iGap.module.SHP_SETTING) RequestGeoGetComment(net.iGap.request.RequestGeoGetComment) Sort(io.realm.Sort) Paint(android.graphics.Paint) TextWatcher(android.text.TextWatcher) OverlayItem(org.osmdroid.views.overlay.OverlayItem) Path(android.graphics.Path) GestureDetector(android.view.GestureDetector) RippleView(net.iGap.libs.rippleeffect.RippleView) AccountManager(net.iGap.module.accountManager.AccountManager) ZoomEvent(org.osmdroid.events.ZoomEvent) ViewPager(androidx.viewpager.widget.ViewPager) BitmapFactory(android.graphics.BitmapFactory) Editable(android.text.Editable) ArrayList(java.util.ArrayList) TileSourceFactory(org.osmdroid.tileprovider.tilesource.TileSourceFactory) LayoutCreator(net.iGap.helper.LayoutCreator) RequestGeoUpdateComment(net.iGap.request.RequestGeoUpdateComment) Toolbar(net.iGap.messenger.ui.toolBar.Toolbar) GPSTracker(net.iGap.module.GPSTracker) ProtoGeoGetNearbyCoordinate(net.iGap.proto.ProtoGeoGetNearbyCoordinate) TopSheetDialog(net.iGap.module.dialog.topsheet.TopSheetDialog) MapView(org.osmdroid.views.MapView) File(java.io.File) InfoWindow(org.osmdroid.views.overlay.infowindow.InfoWindow) Gravity(android.view.Gravity) PorterDuffXfermode(android.graphics.PorterDuffXfermode) SharedPreferences(android.content.SharedPreferences) ScrollView(android.widget.ScrollView) Polyline(org.osmdroid.views.overlay.Polyline) DbManager(net.iGap.module.accountManager.DbManager) EditText(android.widget.EditText) OnMapUsersGet(net.iGap.observers.interfaces.OnMapUsersGet) Rect(android.graphics.Rect) DateUtils(android.text.format.DateUtils) Random(java.util.Random) Theme(net.iGap.module.Theme) G(net.iGap.G) MyInfoWindow(net.iGap.module.MyInfoWindow) FloatingActionButton(com.google.android.material.floatingactionbutton.FloatingActionButton) View(android.view.View) IMapController(org.osmdroid.api.IMapController) R.id.st_fab_gps(net.iGap.R.id.st_fab_gps) PreferenceManager(android.preference.PreferenceManager) HelperImageBackColor(net.iGap.helper.HelperImageBackColor) BottomSheetItemClickCallback(net.iGap.module.dialog.BottomSheetItemClickCallback) RectF(android.graphics.RectF) ItemizedOverlay(org.osmdroid.views.overlay.ItemizedOverlay) OnGetNearbyCoordinate(net.iGap.observers.interfaces.OnGetNearbyCoordinate) ItemizedIconOverlay(org.osmdroid.views.overlay.ItemizedIconOverlay) Marker(org.osmdroid.views.overlay.Marker) OnGeoGetComment(net.iGap.observers.interfaces.OnGeoGetComment) BitmapDrawable(android.graphics.drawable.BitmapDrawable) PorterDuff(android.graphics.PorterDuff) ViewGroup(android.view.ViewGroup) List(java.util.List) TextView(android.widget.TextView) RealmRegisteredInfo(net.iGap.realm.RealmRegisteredInfo) ActivityNotFoundException(android.content.ActivityNotFoundException) Location(android.location.Location) MaterialDialog(com.afollestad.materialdialogs.MaterialDialog) NotNull(org.jetbrains.annotations.NotNull) LocationManager(android.location.LocationManager) Context(android.content.Context) URL_MAP(net.iGap.Config.URL_MAP) OnMapClose(net.iGap.observers.interfaces.OnMapClose) Intent(android.content.Intent) GeoPoint(org.osmdroid.util.GeoPoint) OnGeoCommentResponse(net.iGap.observers.interfaces.OnGeoCommentResponse) MapListener(org.osmdroid.events.MapListener) MotionEvent(android.view.MotionEvent) MODE_PRIVATE(android.content.Context.MODE_PRIVATE) KeyboardUtils(net.iGap.libs.KeyboardUtils) Projection(org.osmdroid.views.Projection) LayoutInflater(android.view.LayoutInflater) DialogAction(com.afollestad.materialdialogs.DialogAction) InternalCompassOrientationProvider(org.osmdroid.views.overlay.compass.InternalCompassOrientationProvider) FirebaseCrashlytics(com.google.firebase.crashlytics.FirebaseCrashlytics) Overlay(org.osmdroid.views.overlay.Overlay) RealmGeoNearbyDistance(net.iGap.realm.RealmGeoNearbyDistance) Color(android.graphics.Color) RealmAvatar(net.iGap.realm.RealmAvatar) Bitmap(android.graphics.Bitmap) R(net.iGap.R) FileUtils(net.iGap.module.FileUtils) OnLocationChanged(net.iGap.observers.interfaces.OnLocationChanged) OnMapRegisterState(net.iGap.observers.interfaces.OnMapRegisterState) StateChangeListener(net.iGap.libs.floatingAddButton.StateChangeListener) GestureDetector(android.view.GestureDetector) CompassOverlay(org.osmdroid.views.overlay.compass.CompassOverlay) OnGeoCommentResponse(net.iGap.observers.interfaces.OnGeoCommentResponse) Random(java.util.Random) RequestGeoUpdatePosition(net.iGap.request.RequestGeoUpdatePosition) NonNull(androidx.annotation.NonNull) TextWatcher(android.text.TextWatcher) Editable(android.text.Editable) IMapController(org.osmdroid.api.IMapController) MaterialDialog(com.afollestad.materialdialogs.MaterialDialog) ViewGroup(android.view.ViewGroup) Intent(android.content.Intent) RequestGeoRegister(net.iGap.request.RequestGeoRegister) RippleView(net.iGap.libs.rippleeffect.RippleView) MapView(org.osmdroid.views.MapView) ScrollView(android.widget.ScrollView) View(android.view.View) TextView(android.widget.TextView) ActivityNotFoundException(android.content.ActivityNotFoundException) Paint(android.graphics.Paint) GeoPoint(org.osmdroid.util.GeoPoint) MotionEvent(android.view.MotionEvent) RequestGeoUpdateComment(net.iGap.request.RequestGeoUpdateComment) ActivityNotFoundException(android.content.ActivityNotFoundException) DialogAction(com.afollestad.materialdialogs.DialogAction) Theme(net.iGap.module.Theme) InternalCompassOrientationProvider(org.osmdroid.views.overlay.compass.InternalCompassOrientationProvider)

Aggregations

Theme (net.iGap.module.Theme)41 View (android.view.View)22 TextView (android.widget.TextView)21 HelperFragment (net.iGap.helper.HelperFragment)17 LinearLayout (android.widget.LinearLayout)15 MaterialDialog (com.afollestad.materialdialogs.MaterialDialog)13 Bundle (android.os.Bundle)12 ViewGroup (android.view.ViewGroup)12 Nullable (androidx.annotation.Nullable)12 RecyclerView (androidx.recyclerview.widget.RecyclerView)12 ArrayList (java.util.ArrayList)12 R (net.iGap.R)11 NonNull (androidx.annotation.NonNull)10 LayoutInflater (android.view.LayoutInflater)9 HelperError (net.iGap.helper.HelperError)9 ParamWithAvatarType (net.iGap.helper.avatar.ParamWithAvatarType)9 Drawable (android.graphics.drawable.Drawable)8 FrameLayout (android.widget.FrameLayout)8 ProgressBar (android.widget.ProgressBar)8 Fragment (androidx.fragment.app.Fragment)8