Search in sources :

Example 26 with Snackbar

use of android.support.design.widget.Snackbar in project NavigationTabBar by Devlight.

the class HorizontalCoordinatorNtbActivity method initUI.

private void initUI() {
    final ViewPager viewPager = (ViewPager) findViewById(R.id.vp_horizontal_ntb);
    viewPager.setAdapter(new PagerAdapter() {

        @Override
        public int getCount() {
            return 5;
        }

        @Override
        public boolean isViewFromObject(final View view, final Object object) {
            return view.equals(object);
        }

        @Override
        public void destroyItem(final View container, final int position, final Object object) {
            ((ViewPager) container).removeView((View) object);
        }

        @Override
        public Object instantiateItem(final ViewGroup container, final int position) {
            final View view = LayoutInflater.from(getBaseContext()).inflate(R.layout.item_vp_list, null, false);
            final RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.rv);
            recyclerView.setHasFixedSize(true);
            recyclerView.setLayoutManager(new LinearLayoutManager(getBaseContext(), LinearLayoutManager.VERTICAL, false));
            recyclerView.setAdapter(new RecycleAdapter());
            container.addView(view);
            return view;
        }
    });
    final String[] colors = getResources().getStringArray(R.array.default_preview);
    final NavigationTabBar navigationTabBar = (NavigationTabBar) findViewById(R.id.ntb_horizontal);
    final ArrayList<NavigationTabBar.Model> models = new ArrayList<>();
    models.add(new NavigationTabBar.Model.Builder(getResources().getDrawable(R.drawable.ic_first), Color.parseColor(colors[0])).title("Heart").build());
    models.add(new NavigationTabBar.Model.Builder(getResources().getDrawable(R.drawable.ic_second), Color.parseColor(colors[1])).title("Cup").build());
    models.add(new NavigationTabBar.Model.Builder(getResources().getDrawable(R.drawable.ic_third), Color.parseColor(colors[2])).title("Diploma").build());
    models.add(new NavigationTabBar.Model.Builder(getResources().getDrawable(R.drawable.ic_fourth), Color.parseColor(colors[3])).title("Flag").build());
    models.add(new NavigationTabBar.Model.Builder(getResources().getDrawable(R.drawable.ic_fifth), Color.parseColor(colors[4])).title("Medal").build());
    navigationTabBar.setModels(models);
    navigationTabBar.setViewPager(viewPager, 2);
    //IMPORTANT: ENABLE SCROLL BEHAVIOUR IN COORDINATOR LAYOUT
    navigationTabBar.setBehaviorEnabled(true);
    navigationTabBar.setOnTabBarSelectedIndexListener(new NavigationTabBar.OnTabBarSelectedIndexListener() {

        @Override
        public void onStartTabSelected(final NavigationTabBar.Model model, final int index) {
        }

        @Override
        public void onEndTabSelected(final NavigationTabBar.Model model, final int index) {
            model.hideBadge();
        }
    });
    navigationTabBar.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

        @Override
        public void onPageScrolled(final int position, final float positionOffset, final int positionOffsetPixels) {
        }

        @Override
        public void onPageSelected(final int position) {
        }

        @Override
        public void onPageScrollStateChanged(final int state) {
        }
    });
    final CoordinatorLayout coordinatorLayout = (CoordinatorLayout) findViewById(R.id.parent);
    findViewById(R.id.fab).setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(final View v) {
            for (int i = 0; i < navigationTabBar.getModels().size(); i++) {
                final NavigationTabBar.Model model = navigationTabBar.getModels().get(i);
                navigationTabBar.postDelayed(new Runnable() {

                    @Override
                    public void run() {
                        final String title = String.valueOf(new Random().nextInt(15));
                        if (!model.isBadgeShowed()) {
                            model.setBadgeTitle(title);
                            model.showBadge();
                        } else
                            model.updateBadgeTitle(title);
                    }
                }, i * 100);
            }
            coordinatorLayout.postDelayed(new Runnable() {

                @Override
                public void run() {
                    final Snackbar snackbar = Snackbar.make(navigationTabBar, "Coordinator NTB", Snackbar.LENGTH_SHORT);
                    snackbar.getView().setBackgroundColor(Color.parseColor("#9b92b3"));
                    ((TextView) snackbar.getView().findViewById(R.id.snackbar_text)).setTextColor(Color.parseColor("#423752"));
                    snackbar.show();
                }
            }, 1000);
        }
    });
    final CollapsingToolbarLayout collapsingToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.toolbar);
    collapsingToolbarLayout.setExpandedTitleColor(Color.parseColor("#009F90AF"));
    collapsingToolbarLayout.setCollapsedTitleTextColor(Color.parseColor("#9f90af"));
}
Also used : ArrayList(java.util.ArrayList) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) PagerAdapter(android.support.v4.view.PagerAdapter) Random(java.util.Random) CollapsingToolbarLayout(android.support.design.widget.CollapsingToolbarLayout) TextView(android.widget.TextView) NavigationTabBar(devlight.io.library.ntb.NavigationTabBar) ViewGroup(android.view.ViewGroup) ViewPager(android.support.v4.view.ViewPager) RecyclerView(android.support.v7.widget.RecyclerView) TextView(android.widget.TextView) View(android.view.View) CoordinatorLayout(android.support.design.widget.CoordinatorLayout) RecyclerView(android.support.v7.widget.RecyclerView) Snackbar(android.support.design.widget.Snackbar)

Example 27 with Snackbar

use of android.support.design.widget.Snackbar in project AntennaPod by AntennaPod.

the class NewEpisodesFragment method onCreateView.

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View root = super.onCreateViewHelper(inflater, container, savedInstanceState, R.layout.all_episodes_fragment);
    ItemTouchHelper.SimpleCallback simpleItemTouchCallback = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) {

        @Override
        public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
            return false;
        }

        @Override
        public void onSwiped(RecyclerView.ViewHolder viewHolder, int swipeDir) {
            AllEpisodesRecycleAdapter.Holder holder = (AllEpisodesRecycleAdapter.Holder) viewHolder;
            Log.d(TAG, "remove(" + holder.getItemId() + ")");
            if (subscription != null) {
                subscription.unsubscribe();
            }
            FeedItem item = holder.getFeedItem();
            // we're marking it as unplayed since the user didn't actually play it
            // but they don't want it considered 'NEW' anymore
            DBWriter.markItemPlayed(FeedItem.UNPLAYED, item.getId());
            final Handler h = new Handler(getActivity().getMainLooper());
            final Runnable r = () -> {
                FeedMedia media = item.getMedia();
                if (media != null && media.hasAlmostEnded() && UserPreferences.isAutoDelete()) {
                    DBWriter.deleteFeedMediaOfItem(getActivity(), media.getId());
                }
            };
            Snackbar snackbar = Snackbar.make(root, getString(R.string.marked_as_seen_label), Snackbar.LENGTH_LONG);
            snackbar.setAction(getString(R.string.undo), v -> {
                DBWriter.markItemPlayed(FeedItem.NEW, item.getId());
                h.removeCallbacks(r);
            });
            snackbar.show();
            h.postDelayed(r, (int) Math.ceil(snackbar.getDuration() * 1.05f));
        }

        @Override
        public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) {
            // We only want the active item
            if (actionState != ItemTouchHelper.ACTION_STATE_IDLE) {
                if (viewHolder instanceof AllEpisodesRecycleAdapter.ItemTouchHelperViewHolder) {
                    AllEpisodesRecycleAdapter.ItemTouchHelperViewHolder itemViewHolder = (AllEpisodesRecycleAdapter.ItemTouchHelperViewHolder) viewHolder;
                    itemViewHolder.onItemSelected();
                }
            }
            super.onSelectedChanged(viewHolder, actionState);
        }

        @Override
        public void clearView(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
            super.clearView(recyclerView, viewHolder);
            if (viewHolder instanceof AllEpisodesRecycleAdapter.ItemTouchHelperViewHolder) {
                AllEpisodesRecycleAdapter.ItemTouchHelperViewHolder itemViewHolder = (AllEpisodesRecycleAdapter.ItemTouchHelperViewHolder) viewHolder;
                itemViewHolder.onItemClear();
            }
        }
    };
    ItemTouchHelper itemTouchHelper = new ItemTouchHelper(simpleItemTouchCallback);
    itemTouchHelper.attachToRecyclerView(recyclerView);
    return root;
}
Also used : AllEpisodesRecycleAdapter(de.danoeh.antennapod.adapter.AllEpisodesRecycleAdapter) Handler(android.os.Handler) RecyclerView(android.support.v7.widget.RecyclerView) View(android.view.View) ItemTouchHelper(android.support.v7.widget.helper.ItemTouchHelper) FeedItem(de.danoeh.antennapod.core.feed.FeedItem) FeedMedia(de.danoeh.antennapod.core.feed.FeedMedia) RecyclerView(android.support.v7.widget.RecyclerView) Snackbar(android.support.design.widget.Snackbar)

Example 28 with Snackbar

use of android.support.design.widget.Snackbar in project RxBinding by JakeWharton.

the class RxSnackbarTest method dismisses.

@Test
public void dismisses() {
    final Snackbar view = Snackbar.make(parent, "Hey", LENGTH_SHORT);
    RecordingObserver<Integer> o = new RecordingObserver<>();
    RxSnackbar.dismisses(view).subscribeOn(AndroidSchedulers.mainThread()).subscribe(o);
    o.assertNoMoreEvents();
    instrumentation.runOnMainSync(new Runnable() {

        @Override
        public void run() {
            view.show();
        }
    });
    instrumentation.runOnMainSync(new Runnable() {

        @Override
        public void run() {
            view.dismiss();
        }
    });
    assertEquals(DISMISS_EVENT_MANUAL, o.takeNext().intValue());
    instrumentation.runOnMainSync(new Runnable() {

        @Override
        public void run() {
            view.show();
        }
    });
    o.dispose();
    instrumentation.runOnMainSync(new Runnable() {

        @Override
        public void run() {
            view.dismiss();
        }
    });
    o.assertNoMoreEvents();
}
Also used : RecordingObserver(com.jakewharton.rxbinding2.RecordingObserver) Snackbar(android.support.design.widget.Snackbar) Test(org.junit.Test)

Example 29 with Snackbar

use of android.support.design.widget.Snackbar in project Gadgetbridge by Freeyourgadget.

the class GBDeviceAdapterv2 method onBindViewHolder.

@Override
public void onBindViewHolder(ViewHolder holder, final int position) {
    final GBDevice device = deviceList.get(position);
    final DeviceCoordinator coordinator = DeviceHelper.getInstance().getCoordinator(device);
    holder.container.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (device.isInitialized() || device.isConnected()) {
                showTransientSnackbar(R.string.controlcenter_snackbar_need_longpress);
            } else {
                showTransientSnackbar(R.string.controlcenter_snackbar_connecting);
                GBApplication.deviceService().connect(device);
            }
        }
    });
    holder.container.setOnLongClickListener(new View.OnLongClickListener() {

        @Override
        public boolean onLongClick(View v) {
            if (device.getState() != GBDevice.State.NOT_CONNECTED) {
                showTransientSnackbar(R.string.controlcenter_snackbar_disconnecting);
                GBApplication.deviceService().disconnect();
            }
            return true;
        }
    });
    holder.deviceImageView.setImageResource(R.drawable.level_list_device);
    //level-list does not allow negative values, hence we always add 100 to the key.
    holder.deviceImageView.setImageLevel(device.getType().getKey() + 100 + (device.isInitialized() ? 100 : 0));
    holder.deviceNameLabel.setText(getUniqueDeviceName(device));
    if (device.isBusy()) {
        holder.deviceStatusLabel.setText(device.getBusyTask());
        holder.busyIndicator.setVisibility(View.VISIBLE);
    } else {
        holder.deviceStatusLabel.setText(device.getStateString());
        holder.busyIndicator.setVisibility(View.INVISIBLE);
    }
    //begin of action row
    //battery
    holder.batteryStatusBox.setVisibility(View.GONE);
    short batteryLevel = device.getBatteryLevel();
    if (batteryLevel != GBDevice.BATTERY_UNKNOWN) {
        holder.batteryStatusBox.setVisibility(View.VISIBLE);
        holder.batteryStatusLabel.setText(device.getBatteryLevel() + "%");
        BatteryState batteryState = device.getBatteryState();
        if (BatteryState.BATTERY_CHARGING.equals(batteryState) || BatteryState.BATTERY_CHARGING_FULL.equals(batteryState)) {
            holder.batteryIcon.setImageLevel(device.getBatteryLevel() + 100);
        } else {
            holder.batteryIcon.setImageLevel(device.getBatteryLevel());
        }
    }
    //fetch activity data
    holder.fetchActivityDataBox.setVisibility((device.isInitialized() && coordinator.supportsActivityDataFetching()) ? View.VISIBLE : View.GONE);
    holder.fetchActivityData.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            showTransientSnackbar(R.string.busy_task_fetch_activity_data);
            GBApplication.deviceService().onFetchActivityData();
        }
    });
    //take screenshot
    holder.takeScreenshotView.setVisibility((device.isInitialized() && coordinator.supportsScreenshots()) ? View.VISIBLE : View.GONE);
    holder.takeScreenshotView.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            showTransientSnackbar(R.string.controlcenter_snackbar_requested_screenshot);
            GBApplication.deviceService().onScreenshotReq();
        }
    });
    //manage apps
    holder.manageAppsView.setVisibility((device.isInitialized() && coordinator.supportsAppsManagement()) ? View.VISIBLE : View.GONE);
    holder.manageAppsView.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            DeviceCoordinator coordinator = DeviceHelper.getInstance().getCoordinator(device);
            Class<? extends Activity> appsManagementActivity = coordinator.getAppsManagementActivity();
            if (appsManagementActivity != null) {
                Intent startIntent = new Intent(context, appsManagementActivity);
                startIntent.putExtra(GBDevice.EXTRA_DEVICE, device);
                context.startActivity(startIntent);
            }
        }
    });
    //set alarms
    holder.setAlarmsView.setVisibility(coordinator.supportsAlarmConfiguration() ? View.VISIBLE : View.GONE);
    holder.setAlarmsView.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent startIntent;
            startIntent = new Intent(context, ConfigureAlarms.class);
            context.startActivity(startIntent);
        }
    });
    //show graphs
    holder.showActivityGraphs.setVisibility(coordinator.supportsActivityTracking() ? View.VISIBLE : View.GONE);
    holder.showActivityGraphs.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent startIntent;
            startIntent = new Intent(context, ChartsActivity.class);
            startIntent.putExtra(GBDevice.EXTRA_DEVICE, device);
            context.startActivity(startIntent);
        }
    });
    ItemWithDetailsAdapter infoAdapter = new ItemWithDetailsAdapter(context, device.getDeviceInfos());
    infoAdapter.setHorizontalAlignment(true);
    holder.deviceInfoList.setAdapter(infoAdapter);
    justifyListViewHeightBasedOnChildren(holder.deviceInfoList);
    holder.deviceInfoList.setFocusable(false);
    final boolean detailsShown = position == expandedDevicePosition;
    boolean showInfoIcon = device.hasDeviceInfos() && !device.isBusy();
    holder.deviceInfoView.setVisibility(showInfoIcon ? View.VISIBLE : View.GONE);
    holder.deviceInfoBox.setActivated(detailsShown);
    holder.deviceInfoBox.setVisibility(detailsShown ? View.VISIBLE : View.GONE);
    holder.deviceInfoView.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            expandedDevicePosition = detailsShown ? -1 : position;
            TransitionManager.beginDelayedTransition(parent);
            notifyDataSetChanged();
        }
    });
    holder.findDevice.setVisibility(device.isInitialized() ? View.VISIBLE : View.GONE);
    holder.findDevice.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (device.getType() == DeviceType.VIBRATISSIMO) {
                Intent startIntent;
                startIntent = new Intent(context, VibrationActivity.class);
                startIntent.putExtra(GBDevice.EXTRA_DEVICE, device);
                context.startActivity(startIntent);
                return;
            }
            GBApplication.deviceService().onFindDevice(true);
            //TODO: extract string resource if we like this solution.
            Snackbar.make(parent, R.string.control_center_find_lost_device, Snackbar.LENGTH_INDEFINITE).setAction("Found it!", new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    GBApplication.deviceService().onFindDevice(false);
                }
            }).setCallback(new Snackbar.Callback() {

                @Override
                public void onDismissed(Snackbar snackbar, int event) {
                    GBApplication.deviceService().onFindDevice(false);
                    super.onDismissed(snackbar, event);
                }
            }).show();
        //                                                     ProgressDialog.show(
        //                                                             context,
        //                                                             context.getString(R.string.control_center_find_lost_device),
        //                                                             context.getString(R.string.control_center_cancel_to_stop_vibration),
        //                                                             true, true,
        //                                                             new DialogInterface.OnCancelListener() {
        //                                                                 @Override
        //                                                                 public void onCancel(DialogInterface dialog) {
        //                                                                     GBApplication.deviceService().onFindDevice(false);
        //                                                                 }
        //                                                             });
        }
    });
    //remove device, hidden under details
    holder.removeDevice.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            new AlertDialog.Builder(context).setCancelable(true).setTitle(context.getString(R.string.controlcenter_delete_device_name, device.getName())).setMessage(R.string.controlcenter_delete_device_dialogmessage).setPositiveButton(R.string.Delete, new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    try {
                        DeviceCoordinator coordinator = DeviceHelper.getInstance().getCoordinator(device);
                        if (coordinator != null) {
                            coordinator.deleteDevice(device);
                        }
                        DeviceHelper.getInstance().removeBond(device);
                    } catch (Exception ex) {
                        GB.toast(context, "Error deleting device: " + ex.getMessage(), Toast.LENGTH_LONG, GB.ERROR, ex);
                    } finally {
                        Intent refreshIntent = new Intent(DeviceManager.ACTION_REFRESH_DEVICELIST);
                        LocalBroadcastManager.getInstance(context).sendBroadcast(refreshIntent);
                    }
                }
            }).setNegativeButton(R.string.Cancel, new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                // do nothing
                }
            }).show();
        }
    });
}
Also used : AlertDialog(android.app.AlertDialog) DialogInterface(android.content.DialogInterface) VibrationActivity(nodomain.freeyourgadget.gadgetbridge.activities.VibrationActivity) ChartsActivity(nodomain.freeyourgadget.gadgetbridge.activities.charts.ChartsActivity) Activity(android.app.Activity) Intent(android.content.Intent) ImageView(android.widget.ImageView) View(android.view.View) CardView(android.support.v7.widget.CardView) RecyclerView(android.support.v7.widget.RecyclerView) TextView(android.widget.TextView) ListView(android.widget.ListView) GBDevice(nodomain.freeyourgadget.gadgetbridge.impl.GBDevice) BatteryState(nodomain.freeyourgadget.gadgetbridge.model.BatteryState) DeviceCoordinator(nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator) Snackbar(android.support.design.widget.Snackbar)

Example 30 with Snackbar

use of android.support.design.widget.Snackbar in project RecyclerViewUndoSwipe by HoneyNeutrons.

the class ItemAdapter method onItemDismiss.

@Override
public void onItemDismiss(final int position) {
    final Item item = new Item();
    item.setItemName(itemList.get(position).getItemName());
    notifyItemRemoved(position);
    itemList.remove(position);
    notifyItemRangeChanged(0, getItemCount());
    tvNumber.setText(String.valueOf(itemList.size()));
    final Snackbar snackbar = Snackbar.make(tvNumber, context.getResources().getString(R.string.item_deleted), Snackbar.LENGTH_LONG).setActionTextColor(ContextCompat.getColor(context, R.color.white)).setAction(context.getResources().getString(R.string.item_undo), new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            itemList.add(position, item);
            notifyItemInserted(position);
            tvNumber.setText(String.valueOf(itemList.size()));
        }
    });
    View snackBarView = snackbar.getView();
    snackBarView.setBackgroundColor(ContextCompat.getColor(context, R.color.colorAccent));
    TextView tvSnack = (TextView) snackBarView.findViewById(android.support.design.R.id.snackbar_text);
    TextView tvSnackAction = (TextView) snackbar.getView().findViewById(android.support.design.R.id.snackbar_action);
    tvSnack.setTextColor(Color.WHITE);
    tvSnack.setTypeface(Typefaces.getRobotoMedium(context));
    tvSnackAction.setTypeface(Typefaces.getRobotoMedium(context));
    snackbar.show();
    Runnable runnableUndo = new Runnable() {

        @Override
        public void run() {
            tvNumber.setText(String.valueOf(itemList.size()));
            snackbar.dismiss();
        }
    };
    Handler handlerUndo = new Handler();
    handlerUndo.postDelayed(runnableUndo, 2500);
}
Also used : Handler(android.os.Handler) TextView(android.widget.TextView) ImageView(android.widget.ImageView) RecyclerView(android.support.v7.widget.RecyclerView) TextView(android.widget.TextView) View(android.view.View) Snackbar(android.support.design.widget.Snackbar)

Aggregations

Snackbar (android.support.design.widget.Snackbar)94 View (android.view.View)50 TextView (android.widget.TextView)23 RecyclerView (android.support.v7.widget.RecyclerView)14 Intent (android.content.Intent)13 BaseTransientBottomBar (android.support.design.widget.BaseTransientBottomBar)9 ListView (android.widget.ListView)8 DialogInterface (android.content.DialogInterface)7 ImageView (android.widget.ImageView)7 LinearLayoutManager (android.support.v7.widget.LinearLayoutManager)5 ItemTouchHelper (android.support.v7.widget.helper.ItemTouchHelper)5 ViewGroup (android.view.ViewGroup)5 AdapterView (android.widget.AdapterView)5 LinearLayout (android.widget.LinearLayout)5 File (java.io.File)5 ArrayList (java.util.ArrayList)5 Bitmap (android.graphics.Bitmap)4 Nullable (android.support.annotation.Nullable)4 LayoutInflater (android.view.LayoutInflater)4 RemindyDAO (ve.com.abicelis.remindy.database.RemindyDAO)4