代码拉取完成,页面将自动刷新
同步操作将从 Leon/BiuVideo 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
通过BiliBili接口获取数据,对视频、音频、图片等资源在线观看、收听、缓存等
V3
版本会用到高德提供的API和百度统计API,故因此需要请求服务权限标识
Key
,请在app/src/main/java/com/leon/biuvideo/values/apis
包下,创建一个名为ApiKeys
的Java文件,并将Key
作为常量进行存放
package com.leon.biuvideo.values.apis;
public class ApiKeys {
public static final String AMAP_KEY = "AMAP_KEY";
public static final String BAIDU_KEY = "BAIDU_KEY";
}
GitHub
暂不更新Aria
框架的注解所出现的问题,解决方案(见'注解无效'部分)
下载中
页面,其功能还未实现Rebuild Project
的时候可能会出现下面的错误,暂时还未找到解决办法~~Execution failed for task ':app:compileDebugJavaWithJavac'.
> java.lang.IndexOutOfBoundsException: Index: 0, Size: 0~~
番剧播放
界面,其功能还未实现
弹幕数据解析类
,并实现了弹幕功能
CV大法
完成了弹幕功能,弹幕功能还需要进一步的优化黑灰屏
的情况,该问题还未解决音乐数据解析类
,播放器的部分功能还未实现播放界面
的大部分交互已完成
音乐播放界面
,具体功能还未实现专栏界面
,具体功能还未实现专栏界面
的部分功能还未添加专栏界面
的功能已基本完善
相册界面
相册页面
的部分功能已完成用户页面
中加入了投稿视频和音频页面
B站用户
页面二级评论
还存在问题推荐视频
item背景还存在问题VideoCommentDetailFragment
或VideoFragment
出现黑屏的情况,如果不通过IDE打开则不会出现这样的情况VideoWithFlvParser
dash
的方式获取数据流dash
的方式获取数据流,所以该版本在不登陆的情况下最高只能获取480p
画质的视频历史记录
页面
沉浸式
与返回操作配合有问题,所以,本次去除了沉浸式
,使用全屏显示搜索结果
界面,该页面的部分功能还需要完善历史记录
解析类
PopularTopListFragment
、PopularTopListSubFragment
和PopularTopListParser
还未修改完成显示该UP主所有上榜视频
功能还存在问题未解决BaseLazySupportFragment
,该类用以执行懒加载数据,需要配合ViewPager2
使用
BaseLazySupportFragment
的页面还未进行替换PopularFragment
的布局
PopularFragment
页面的popular_hot_list
的item还需要进行更改每周必看
页面,部分功能还需要进行完善
ViewUtils.initTabLayoutAndViewPager2()
进行了修改,并修复了ViewPager2滑动灵敏的问题Activity
,并返回一个MainActivity.OnTouchListener
对象,使用示例 public class XXXFragment {
private MainActivity.OnTouchListener onTouchListener;
@Override
protected void initView() {
SimpleTopBar topBar = view.findViewById(R.id.topBar);
topBar.setOnSimpleTopBarListener(new SimpleTopBar.OnSimpleTopBarListener() {
@Override
public void onLeft() {
backPressed();
}
@Override
public void onRight() {
}
});
TabLayout tabLayout = view.findViewById(R.id.tabLayout);
ViewPager2 viewPager = view.findViewById(R.id.viewPager);
// Do something...
// 初始化ViewPager2和TabLayout
onTouchListener = ViewUtils.initTabLayoutAndViewPager2(getActivity(), tabLayout, viewPager, new String[]{"title1", "title2"}, 1);
}
// 一定要重写onDestroyView
@Override
public void onDestroyView() {
// 取消注册Touch事件
((MainActivity) getActivity()).unregisterTouchEvenListener(onTouchListener);
super.onDestroyView();
}
}
入站必刷
页面专栏分区
和频道
外,其他分区均已完成其UINPE
异常
综合热门页面
,加载数据部分需要进行优化,后期可能对刷新加载控件(SmartRefreshLayout)进行替换PartitionFragment
(分区页面)partition.json
资源文件,该文件存放了部分分区子分区的title及ID
FavoriteArticleFragment
ViewPager
均已替换为ViewPager2
TabLayout
和ViewPager2
可使用ViewUtils.initTabLayoutAndViewPager2(TabLayout tabLayout, ViewPager2 viewPager2, String[] titles, int firstShowItemPosition)
进行初始化BangumiDetailParser
,用来获取番剧具体数据FollowsFragment
和FollowersFragment
的上拉加载数据功能已完成
UserFragment
的用户数据获取方式还需要进行更改FavoriteVideoFolderFragment
及相关功能已完成
UserFragment
顶部图显示不正常的问题BaseLazySupportFragment
UserFragment
的各项功能均已完成
dimen
和Color
数值进行了统一
FollowFragment
XXXAdapter.setHasStableIds(true)
,用来防止数据错乱的问题,部分未修改的将在后期整理代码的时候修改UserFragment
,但顶部图的显示还存在问题UserInfoParser
还未完善UserInfoParser
稍后观看功能
稍后观看
功能
RecommendFragment
OrderFragment
后会出现NPE
异常,问题根源还未知LocationUtil.geoLocation(Context context, double latitude, double longitude)
时,是纬度在前经度在后设置推荐视图样式
的界面RecommendFragment
时会出现BUG设置推荐视图样式
功能,可将推荐样式设置成单列
或双列
设置位置
来手动设置天气预报位置SettingsFragment
的代码还需进行清理BaseLazySupportFragment
和BaseLazySupportFragmentWithSrr
两个抽象类
BaseLazySupportFragment
自带懒加载功能,在需要自定义比布局时继承该类BaseLazySupportFragmentWithSrr
该类不需要指定XML布局文件,适合需要加载数据的数据列表页面,只需重写initView()
即可试验阶段
其代码还未进行过优化设置位置
功能DownloadManagerFragment
,下载管理页面;加入了LoginFragment
,登录页面SimpleTopBar
LoginFragment
登录页面DownloadedFragment
,该Fragment还未完善FavoriteUserAdapter
,增加了Item侧滑菜单功能
FavoriteUserAdapter
已更名为MyFollowsAdapter
HistoryFragment
,增加了动态根据资源类型创建Item的功能PopularFragment
、OrderFragment
、FavoritesFragment
都存在第二次打开
后,出现TabLayout
滑动距离变长,且所含的子Fragment
不显示,以上问题都是在TabLayout
和ViewPager
配合使用中出现的TabLayout
滑动距离变长的问题SimpleThread
,该类只是用来执行单个线程,不能同时执行多个,示例:
SimpleThread.executor(new Runnable() {
@Override
public void run() {
// Do someting...
}
});
WeatherService
是留存在后台获取天气数据使用的,每半小时获取一次,获取数据的方式还待定WeatherService
,该服务每半小时获取一次天气信息,并通过广播发送天气数据Actions
类,该类用来存放所有使用intentFilter
添加的action
adcode
的功能,但还未进行完善LocationUtil
只需实例化一次,获取位置信息调用getAddress()
方法
V2
分支已停止更新,后续更新将在该分支上进行更新SDK21(Android 5.0)
有部分限制,所以将minSdkVersion
升到了24(Android 7.0)V3
分支中进行更新选择位置
功能,该功能用于设置天气预报的位置名言名句
替换为了天气预报
Fragment
,用于ViewPager
中TabLayout
控件指示条的颜色TagView
的部分问题还未解决TagView
和SimpleTopBar
CardTitle
自定义控件发现
页面已基本完成SimpleTopBar
,该自定义控件可实现顶部栏,后期会对该控件进行优化备份功能
,这是由于本地数据的问题,在下个版本中会加入很多新功能new_home_layout.xml
,该文件为替换的主页布局SimpleSnackBar
中带有监听事件参数的make方法
setAction
进行设置simple_snackbar_with_action_layout.xml
SnackBar
均已替换成自定义layout的SnackBar
ThanksList
SimpleSnackBar.make(view, "显示文本", SimpleSnackBar.LENGTH_SHORT/LENGTH_LONG).show();
SimpleSnackBar.make(view, "显示文本", "被点击文本", new View.OnClickListener() {
@Override
public void onClick(View v) {
// Do something...
}
}, SimpleSnackBar.LENGTH_SHORT).show();
SnackBar
进行替换 // 初始化本地广播接收器
ThemeColorChangeBroadcastReceiver themeColorChangeBroadcastReceiver = new ThemeColorChangeBroadcastReceiver();
themeColorChangeBroadcastReceiver.initBroadcast(getApplicationContext());
themeColorChangeBroadcastReceiver.setChangeThemeColorListener(new ThemeColorChangeBroadcastReceiver.ChangeThemeColorListener() {
@Override
public void changThemeColor(int position) {
// 修改当前布局主题
}
});
原图模式
,核心部分还未编写V2.1
分支,该分支将着重于UI的修改,该分支不会对功能性代码进行大幅度改动FFmpeg
第三方Android库进行音视频合并操作,由于so库过大,所以导致APK大小增加了5M左右arm64-v8a
架构Temp
文件夹中Temp
中的所有文件多线程
和懒加载
的地方均已替换完成favoriteUp
表
用户数据
,在使用清除用户数据
功能时,会将其删除掉关注
功能的部分代码SQLiteHelpFactory
有点鸡肋,所以后面会将其清除掉2.5.8-beta
缓存选集帮助链接
多线程
进行加载,部分Fragment
采用了懒加载的方式SimpleThreadPool
中的cancelTask
方法来取消已使用过的线程layout
资源已整理完成drawable
文件Toast
均已替换成Snackbar
localOrders
表进行的修改
本地订阅
功能已基本完成V2
版本已进入最后整理阶段VideoActivity
、BangumiActivity
和ArticleActivity
中的部分代码
article
表,将由LocalOrders
代替,涉及到的其他代码还未进行清理LocalOrders
表中加入了cover字段,涉及到代码还未完成修改videoPlayList
和musicPlayList
两个表
localVideoFolders
和localOrders
代替VideoActivity
中点亮红心时,会弹出一个选择要添加进的收藏夹弹窗,第一次启动APP会默认添加一个默认收藏夹
MusicActivity
中的部分代码本地订阅
,这样做是为了能够将喜欢的视频、音频及专栏保存在本地,下一个版本会加入同步(已保存的数据将会根据自已的意愿选择是否进行和B站账户数据同步),该功能并不是为了同步,而是尽可能的保持离线化
localVideoFolders
localOrders
e7d4aa8c
中的第三个问题Cookie
获取,所有获取接口数据的Parser类
都需要通过构造方法来创建
Cookie
的获取统一通过ParserUtils-getInterfaceRequestHeader (Context context)
来获取BangumiActivity
进行了完善NPE异常
,我也不知道为啥有毛病还要提交,可能是为了不让连续提交
断掉吧( ̄▽ ̄)"BangumiActivity
V2
版本并没有在线播放功能,在下一个版本中会添加该功能OrderFragment
和HistoryFragment
的数据LoginActivity
的布局代码获取/设置
下载失败资源列表的方式
MainActivity
中设置下载失败的资源,在DownloadFailListFragment
中获取下载失败的资源MainActivity
中的代码,如果在已打开OrderFragment
的情况下,进行登录,会出现订阅数据不更新的情况VideoActivity
的代码VideoActivity
出现闪退VideoActivity
进行修改,BUG一个接一个的出现真是太难了UserActivity
界面中出现闪退downloadDetailsForMedia
中加入了resourceMark
字段,该字段为UNIQUE
,用来标识已下载过的媒体资源resourceMark
字段格式:
subId
+ "-" + qualityId
mainId
缓存失败列表
,并加入了重新下载
功能重新下载
功能已完成,并在VideoActivity
的清晰度选择中加入了已下载提醒NetworkOnMainThreadException
离线缓存
功能已完成离线缓存
的部分问题离线缓存
功能,已基本完成,通过Broadcast动态加载还未完成下载任务
界面的,奈何本人太菜,只能弃坑了离线缓存
功能已基本完成,视频的清晰度分别还需要修改离线缓存
列表的功能还未实现收藏
功能和在专栏界面点击用户头像,莫名其妙的出现了BUG,还需要进行修改OrderFragment
中的VideoListFragment
已完成UserFragments
中的Fragment已全部继承BaseFragmentOrderFragment
,可获取用户订阅的内容
5b7d840d
的提交的问题已解决HistoryFragment
已基本完成,暂没发现BUGArticleActivity
中不显示文章标签和专栏发表时间HistoryType
的值创建的视频观看记录
的查询,代码还需要进行优化VideoHistoryFragment
,该Fragment的各项功能都未完成BaseFragment
,继承该类可更好的创建和使用FragmentHomeFragment
中onHiddenChanged()
方法不起作用的情况HistoryFragment
HistoryFragment
中ViewPager
的数据展示还未完成LoginActivity
,该Activity用来用户登录的操作MainActivity
顶部栏右边的选项(还未删除),移动到了侧边栏中PreferenceActivity
转换为Fragment1.1.3-beta
版本的基础上进行更新master
分支将不会进行更新,只会上传到V2
分支上build.gradle
的versionCode才进行递增build.gradle
和version.xml
中的versionCode和versionName进行更改,其两文件的值需要一一对应相同帮助
链接MusicActivity
切换歌曲的问题1.1.2-beta
AndroidManifest.xml
中的allowBackup属性,现已改为false,后期会根据反馈情况来决定是否开启1.1.3-beta
PreferenceActivity
加入了关于本APP
Dialog开源状态
PreferenceActivity
中加入了将关注列表的顺序设置为"按照访问量"排序
功能按照访问量
排序该功能已完成ImportStateDialog
不显示的问题values
包下的ThanksList
类中三个数组进行追加即可parseDataUtils
包中的部分代码PreferenceActivity
中加入了设置Hero
的功能PreferenceActivity
中的设置Hero
功能已完成
HeroImages.heroImages
中加入其资源IDpreference_strings.xml
中的heroNames
数组中加入其名称即可activity_user
和activity_search_result
中使用了CoordinatorLayout
控件,已实现折叠悬浮效果RoundPopupWindow
类,该类用于创建一个带有圆角的popupWindowsetContentView(int layoutId)
来设置视图内容setOnClickListener (int viewId, View.OnClickListener onClickListener)
用来设置控件的监听setLocation(int location)
根据需要进行设置RoundPopupWindow
more
弹窗都已使用RoundPopupWindow
进行创建InternetUtils
中的静态方法checkNetwork()
string.xml
中的network_sign
即可parseDataUtils
包中的各解析工具类也存在大量代码冗余RoundPopupWindow
抽象类,该类可以创建一个带有圆角样式的popupWindow
ArticleActivity
中加入了作者头像、名称的控件metas
接口链接SearchResultActivity
还存在输入关键字搜索不了的情况SearchResultActivity
中加入了setOffscreenPageLimit()
方法,解决了切换fragment时不在加载范围内的fragment会被销毁的问题(总感觉使用这个方法会有点不妥的感觉)VideoResultFragment
VideoResultFragment
中添加了加载更多功能HomeFragment
中的spinner的样式进行了修改HomeFragment
进行了修改,将其中的搜索视频&用户更改为了综合搜索,搜索结果有视频、专栏和用户SearchResultActivity
,该Activity的作用为搜索结果页面SearchResultActivity
的界面设计还未完成SearchResultActivity
中添加了控件初始化代码AboutDialog
的界面代码导入外部数据
功能ImportFollowDialog
已完成utils
中的部分目录结构 public class Adapter extends BaseAdapter<MusicPlayList> {
@Override
public int getLayout(int viewType) {
return itemID;
}
@Override
public void onBindViewHolder(@NonNull BaseViewHolder holder, int position) {
//调用holder中对应的方法,具体说明可看代码注释
}
//其他方法
}
MusicPlayListAdapter
相关的适配还未完成,切换歌曲时position
会出现未重置成功的情况对获取接口响应数据的方式进行了更改
获取接口数据的方法
public HttpUtils(String url, Headers headers, Map<String, String> params) {
this.url = url;
this.headers = headers;
this.params = params;
}
public HttpUtils(String url, Map<String, String> params) {
this.url = url;
this.params = params;
this.headers = Headers.of(getHeaders());
}
对连接SQLite的方式进行了更改
SQLiteHelperFactory
类,构造方法参数只用传入Context
和对应的Tables,调用getInstance()
方法来获取对象,需要进行强制转换
Destroy
中调用其close()
方法即可,使用完数据库必须要调用该方法
各适配器(Adapter)的代码还未进行冗余清除
指示栏
还未进行相同的更改指示栏
进行了更改,对部分控件添加了ripple
效果ripple
效果ripple
效果
item
的ripple
效果都已添加picture
界面还未添加AndroidManifest
中的MainActivity的Theme使用more_menu_style
的话,则输入框旁边的spinner
的样式会失效播放列表
功能
MusicService
中的differenceRange变量的值来解决问题此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。